使用“记住我”功能在.NET 2.0中进行身份验证

时间:2008-09-29 19:16:56

标签: .net authentication forms cookies

我的客户希望我在用户登录时启用“记住我”复选框。我正在加密并将用户名和密码存储在cookie中。

但是,当它处于密码模式时,您无法写入文本框。

我已经看过很多次,所以他们是怎么做到的?

提前感谢!

8 个答案:

答案 0 :(得分:8)

如何不是将文本插入登录表单,而是完全绕过表单并在登录页面上检查cookie的内容?为用户减少工作量,它会使它更加无缝。

答案 1 :(得分:2)

Page_Load( ...)
 {
    ... process cookie ...
    if (cookie is good) Response.Redirect("content.aspx");
 }

请记住在重定向之前关闭并处理任何数据库活动。

答案 2 :(得分:1)

他们不希望用户自动登录,只希望预先填写usernamd和password字段。

我知道这是愚蠢的,就像让你登录一样,但这是他们的要求。

我已经提到这不是最好的安全措施,但他们并不关心。

像myspace这样的网站使用它,你可以去myspace.com,你的用户名和密码是 已经填写了。

答案 3 :(得分:1)

我不记得任何网页正如您所描述的那样做了类似的东西,但我认为这是Web浏览器自动填写密码。我知道这不是一个好的解决方案,但你可以做的是,如果有一个cookie来验证用户,可以在不同的登录页面中设置普通文本框的文本与星号或类似的东西。无论如何,您无需使用文本框中的密码对用户进行身份验证。

答案 4 :(得分:1)

如果您的服务器端代码可以访问cookie中的用户名和密码,那么您的页面就不能只填充表单字段的值属性,如下所示:

<input type="text" name="username" value="<%=decryptedUsername%>" />
<input type="password" value="<%=decryptedPassword%>" />

当然,这是非常不安全的,因为你用纯文本回复用户密码(这是一个很大的禁忌)。但正如您所说,您的客户并不担心安全隐患。如果是,那么SSL可能有助于降低这种风险。

答案 5 :(得分:0)

您可以在2周内设置cookie的到期时间以保持用户登录。这就是ASP.NET身份验证与持久身份验证的协同工作方式。请记住在每次请求时更新到期日期。

答案 6 :(得分:0)

非常直接,尝试使用:

txtPass.Attributes [“value”] =“123456”; (很可能是在页面加载事件处理程序中)

其中txtPass是密码文本框的ID(在密码模式下)。你要显示的密码是123456。

答案 7 :(得分:0)

文本框是否可以更改类型?如果是这样,你可以使文本框正常并隐藏,然后将密码放在那里,然后将文本框类型更改为密码类型,然后取消隐藏...