0

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

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

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

我怎么能以安全的方式做类似本教程的事情?

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

if user logged in then show page

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

我有一种感觉,为此我需要在我的数据库中创建一个会话表,但我不确定。

由于这是针对 Intranet 的,因此它不必是顶级安全性,但我仍然希望它有点安全。

谢谢

4

3 回答 3

1

最简单的方法是在您的登录功能中,一旦您验证了它们,只需添加:

FormsAuthentication.SetAuthCookie(theUserName, persistCookieBoolean);

现在您已经设置了身份验证 cookie。无需加密或解密。获取用户名,如:

HttpContext.Current.User.Identity.Name

并查看他们是否已登录:

HttpContext.Current.User.Identity.IsAuthenticated

现在您也可以在 web.config 中轻松设置授权。相关文章:ASP .Net 中的手动访问控制

于 2013-02-07T14:35:32.180 回答
0

在存储到 cookie 之前加密您的数据(用户名等)。

读取 cookie,解密数据然后验证。

检查这个:

在 .NET 应用程序中加密和解密数据

在 .NET 中加密/解密字符串

于 2013-02-07T14:25:59.173 回答
0

您可以使用会话。

示例代码 VB:

登录时执行:

Session("Username") = "username"

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

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

于 2013-02-07T15:09:05.960 回答