ASP.Net中的基本安全会话
本文关键字:安全 会话 Net ASP | 更新日期: 2023-09-27 17:58:23
首先,我没有使用Forms Authentication。
我发现了一个很棒的教程,几乎可以满足我的需求:http://www.codeproject.com/Questions/358434/Keep-me-signed-in-until-Loggged-out
唯一的问题是,这似乎不是一个好主意。它将用户名存储在cookie中。这似乎很糟糕。
我怎么能以一种安全的方式做像本教程这样的事情呢?
我基本上只想要这个基本流程:
if user logged in then show page
用户可以选择登录会话(30分钟不活动),或者直到他们选择明确注销。
我有一种感觉,我需要数据库中的会话表,但我不确定。
它不一定是顶级的安全性,因为这是用于intranet的,但我仍然希望它在某种程度上是安全的。
感谢
最简单的方法是在您的登录功能中,一旦您验证了它们,只需添加:
FormsAuthentication.SetAuthCookie(theUserName, persistCookieBoolean);
现在您有了一个身份验证cookie集。无需加密或解密。获取用户名,如:
HttpContext.Current.User.Identity.Name
看看他们是否登录:
HttpContext.Current.User.Identity.IsAuthenticated
现在,您也可以在web.config中轻松设置授权。相关文章:ASP.Net 中的手动访问控制
在存储到cookie之前对数据(用户名等)进行加密。
读取cookie,解密数据&然后进行验证。
检查此项:
加密&.NET应用程序中的数据解密
加密/解密.NET 中的字符串
您可以使用会话。
示例代码VB:
登录时do:
Session("Username") = "username"
然后每次页面加载时检查Session("Username")
是否有任何数据/不为空。
如果它为null或为空,则会话已过期,您可以将它们踢出页面。