首先,我没有使用表单身份验证。
我发现了一个很棒的教程,几乎可以满足我的需求: http://www.codeproject.com/Questions/358434/Keep-me-signed-in-until-Loggged-out
唯一的问题是它似乎不是一个好主意。它将用户名存储在cookie中。这看起来非常糟糕。
我怎么能以安全的方式做这个教程呢?
我基本上只想要这个基本流程:
if user logged in then show page
用户可以选择登录会话(30分钟不活动)或直到他们选择明确注销。
我有一种感觉,我需要在我的数据库中使用会话表,但我不确定。
它不一定是顶级的安全性,因为这是一个内部网,但我仍然希望它有点安全。
由于
答案 0 :(得分:1)
最简单的方法是在您的登录功能中,一旦您验证了它们,只需添加:
FormsAuthentication.SetAuthCookie(theUserName, persistCookieBoolean);
现在您已设置了身份验证Cookie。无需加密或解密。获取用户名:
HttpContext.Current.User.Identity.Name
看看他们是否已登录:
HttpContext.Current.User.Identity.IsAuthenticated
现在您也可以在web.config中轻松设置授权。相关文章:Manual Access control in ASP .Net
答案 1 :(得分:0)
在存储到cookie之前加密您的数据(用户名等)。
阅读cookie,解密数据&然后验证。
检查一下:
答案 2 :(得分:0)
您可以使用会话。
示例代码VB:
登录时执行:
Session("Username") = "username"
然后每次页面加载检查Session("Username")
是否有任何数据/不为空。
如果它为null或为空,则会话已过期,您可以将它们踢出页面。