ASP .Net中的基本安全会话?

时间:2013-02-07 14:18:36

标签: c# asp.net

首先,我没有使用表单身份验证。

我发现了一个很棒的教程,几乎可以满足我的需求: http://www.codeproject.com/Questions/358434/Keep-me-signed-in-until-Loggged-out

唯一的问题是它似乎不是一个好主意。它将用户名存储在cookie中。这看起来非常糟糕。

我怎么能以安全的方式做这个教程呢?

我基本上只想要这个基本流程:

if user logged in then show page

用户可以选择登录会话(30分钟不活动)或直到他们选择明确注销。

我有一种感觉,我需要在我的数据库中使用会话表,但我不确定。

它不一定是顶级的安全性,因为这是一个内部网,但我仍然希望它有点安全。

由于

3 个答案:

答案 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,解密数据&然后验证。

检查一下:

Encrypting & Decrypting Data in .NET Applications

Encrypt/Decrypt string in .NET

答案 2 :(得分:0)

您可以使用会话。

示例代码VB:

登录时执行:

Session("Username") = "username"

然后每次页面加载检查Session("Username")是否有任何数据/不为空。

如果它为null或为空,则会话已过期,您可以将它们踢出页面。