8

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

但是,当文本框处于密码模式时,您不能写入文本框。

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

提前致谢!

4

8 回答 8

8

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

于 2008-09-29T19:19:13.397 回答
2
Page_Load( ...)
 {
    ... process cookie ...
    if (cookie is good) Response.Redirect("content.aspx");
 }

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

于 2008-09-29T19:30:47.347 回答
1

我不记得有任何网页像您描述的那样做类似的事情,但我认为这是网络浏览器自动填写密码。我知道这不是一个好的解决方案,但你可以做的可能是,如果有一个 cookie 来验证用户身份,那么在不同的登录页面中设置带有星号或类似内容的普通文本框的文本。无论如何,您都不需要使用文本框中的密码来验证用户身份。

于 2008-10-01T07:53:36.617 回答
1

如果您的服务器端代码可以从 cookie 访问他们的用户名和密码,那么您的页面不能像这样填充表单字段的值属性:

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

当然,这是非常不安全的,因为您正在以纯文本形式将用户密码回显给他们(这是一个很大的禁忌)。但是正如您所说,您的客户并不担心安全隐患。如果它们是 SSL,则可能有助于减轻这种风险。

于 2008-10-16T21:51:46.350 回答
1

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

我知道这很愚蠢,和让你保持登录状态一样,但这是他们的要求。

我已经提到这不是最好的安全实践,但他们不在乎。

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

于 2008-09-29T19:51:31.137 回答
0

那很简单,尝试使用:

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

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

于 2008-12-17T12:22:00.033 回答
0

您可以将 cookie 的到期时间设置为 2 周以保持用户登录。这就是 ASP.NET 身份验证与持久身份验证一起工作的方式。请记住更新每个请求的到期时间。

于 2008-09-29T19:24:08.753 回答
0

文本框是否可以更改类型?如果是这样,你能不能让文本框正常隐藏,然后把密码放在那里,然后把文本框类型改成密码类型,然后取消隐藏...

于 2008-12-30T19:50:58.913 回答