【问题标题】:Using "Remember Me" functionality for authentication in .NET 2.0在 .NET 2.0 中使用“记住我”功能进行身份验证
【发布时间】:2009-02-28 02:09:01
【问题描述】:

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

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

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

提前致谢!

【问题讨论】:

    标签: .net authentication forms cookies


    【解决方案1】:

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

    【讨论】:

    • 正确。在您提交登录表单之前检查 cookie。
    • 做不到,他们不希望用户自动登录,他们只想设置用户名/密码字段。
    【解决方案2】:
    Page_Load( ...)
     {
        ... process cookie ...
        if (cookie is good) Response.Redirect("content.aspx");
     }
    

    只记得在重定向之前关闭并处理所有数据库活动。

    【讨论】:

      【解决方案3】:

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

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

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

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

      【讨论】:

      • 通常这种行为是由网络浏览器完成的,而不是网站。
      【解决方案4】:

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

      【讨论】:

        【解决方案5】:

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

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

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

        【讨论】:

          【解决方案6】:

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

          【讨论】:

            【解决方案7】:

            这很简单,尝试使用:

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

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

            【讨论】:

              【解决方案8】:

              文本框可以改变类型吗?如果是这样,能不能把文本框正常隐藏,然后把密码放进去,然后把文本框类型改成密码类型,然后取消隐藏...

              【讨论】:

                猜你喜欢
                • 1970-01-01
                • 2011-06-18
                • 1970-01-01
                • 1970-01-01
                • 1970-01-01
                • 1970-01-01
                • 2013-08-31
                • 1970-01-01
                • 2018-06-06
                相关资源
                最近更新 更多