【发布时间】:2012-12-13 21:56:15
【问题描述】:
我用 MVC4 创建了我的第一个超级小型 webapp。到目前为止,我使用布局的东西来布局 webapp,并添加了一些视图控制器和模型来注册并允许用户登录。
一旦用户登录/注册,我将其用户名存储在会话中。我从会话中读取此属性以确定用户是否已登录。
这是一种不好的做法吗?我读了很多关于 RESTful 和无状态 webapps 的文章。我有种感觉,我不应该在会话中保存任何内容。
例如
@if (string.IsNullOrEmpty(Session["User"] as string))
{
<dl>
<dt><a href="/Account/Register">Register</a></dt>
<dt><a href="/Account/Login">Login</a></dt>
</dl>
}
else
{
<dl>
<dt><a href="/Account/ShowAccount/@Session["User"]">@Session["User"]</a></dt>
<dt><a href="/Account/Logout">Log out</a></dt>
</dl>
}
Q1:这是一种不好的做法吗?
Q2:这是“黑客安全”吗?照原样,破解当前会话并在 Session["User"] 中存储一个值以绕过登录是否容易?
【问题讨论】:
-
为什么不直接使用内置的 ASP.NET 成员资格功能来检查用户是否已经登录?
-
我想我忘了强调我有点新的事实:)。到目前为止学到了很多东西,但还没有遇到过那部分。我会检查一下,但在问题的答案后仍然很好奇。我敢打赌,我以后会发现需要在会话中存储东西,我想知道我是否可以按照上面描述的方式使用它而不会出现任何问题。
标签: asp.net asp.net-mvc session