所以基本上我想知道我使用会话变量的方式有多安全.

我有一个登录表单,用户在其中键入用户名/密码,它被参数化,然后被查询,如果用户名/密码存在,则从db表返回一个用户ID.这对每个用户来说都是独一无二的.

当我有这个值时,我想知道这种方法是否是将用户ID存储在会话变量uID中的安全方法?不管怎样我就是这么做的,

Session["uID"] = (int)dt.DefaultView[0]["userID"];

FormsAuthentication.RedirectFromLoginPage(username.Text, false);

Response.Redirect("userPage.aspx", false);

然后页面被重定向到另一个页面,在那里我使用会话变量从数据库获取USERS表.

提前感谢您的反馈

推荐答案

无论使用哪种存储方法(内存、会话状态服务器或数据库),会话状态都完全保留在服务器端.

因此,除非您的服务器遭到黑客攻击,否则会话变量是安全的.如果您的服务器真的遭到黑客攻击,除非黑客找到分析IIS进程内存的方法,否则他只能访问自己会话中的数据.

Asp.net相关问答推荐

为什么 @Html.EditorFor 和 @Html.PasswordFor 在 MVC 中创建不同的样式框?

在 Windows Server 2008 IIS7 上的 ASP.NET 中写入事件日志(log)

为什么微软决定支持 jQuery 如此重要?

在 Sessions 中存储自定义对象

将 Global.asax 迁移到 Startup.cs

解析器错误消息:文件/TestSite/Default.aspx.cs不存在

如何通过 Asp.net 中的命令参数传递多个值?

用户NT AUTHORITY\NETWORK SERVICE登录失败

控制器 SessionStateBehavior 是只读的,我可以更新会话变量

如何在 ASP.NET Web 窗体中使用依赖注入

使用 JavaScript 更改 ASP.NET 标签的可见性

如何在不使用 Session 的情况下在 ASP.net 中的页面之间传递值

是否有用于 Asp.net 标记的#IF DEBUG?

为什么对 ASP.NET MVC 控制器的调用不执行 DelegatingHandler?

我的 asp.net mvc Web 应用程序中的 OutputCache 设置.防止缓存的多种语法

如何在 ASP.NET 中获取原始请求正文?

如何在 ASP.NET MVC 中设置时区?

错误处理(向客户端发送 ex.Message)

ASP.NET 网格视图与列表视图

新的 csproj 文件 struct 可以与 ASP.NET Framework 项目一起使用吗?