Man*_*ana 26 c# asp.net session
所以基本上我想知道我使用Session变量的方式有多安全.
我有一个登录表单,用户输入他的用户名/密码,然后进行参数化,然后查询,如果存在用户名/密码,则从db表返回userID.这对每个用户都是独一无二的.
当我有这个值时,这就是我想知道这种方式是否是在会话变量uID中存储userID的安全方式?无论如何这就是我做的,
Session["uID"] = (int)dt.DefaultView[0]["userID"];
FormsAuthentication.RedirectFromLoginPage(username.Text, false);
Response.Redirect("userPage.aspx", false);
Run Code Online (Sandbox Code Playgroud)
然后页面被重定向到另一个页面,我使用会话变量从数据库中获取用户表.
提前感谢您的反馈
Roy*_*tus 42
无论您使用哪种存储方法(内存,会话状态服务器或数据库),会话状态都完全保留在服务器端.
因此,除非您的服务器被黑客攻击,否则Session变量是安全的.如果您的服务器遭到入侵,黑客只能访问自己会话中的数据,除非他找到了分析IIS进程内存的方法.
Rya*_*ugh 15
非常安全,.NET会话变量与可以从客户端查看的cookie变量不同,此实例中的会话变量只能从C#代码访问.
因此,您可以安全地知道,除了运行后台的代码之外,任何人/事物都无法编辑Session变量.
与您的问题没有完全相关,但在您的情况下可能很有用:
您还可以在Session中存储整个对象,这样就可以在会话中存储用户对象,例如
user_Class user = new user_Class();
user.UID = 1;
Session["User"] = user;
Run Code Online (Sandbox Code Playgroud)
然后在每页的加载中重新加载它.
user_Class user = (user_Class)Session["User"];
Run Code Online (Sandbox Code Playgroud)
然后你可以每次从session获取user.UID.
| 归档时间: |
|
| 查看次数: |
23729 次 |
| 最近记录: |