【问题标题】:ASP.NET Forms Authentication - Remember Me issueASP.NET 表单身份验证 - 记住我问题
【发布时间】:2013-01-30 19:19:14
【问题描述】:

我在我的 ASP.NET webapp 的表单身份验证中使用“记住我”。 如果我使用有效凭据登录并选择“记住我”,我可以登录,一切都很好。 现在,如果我关闭窗口,打开 SQL 服务器并更改密码,然后尝试打开 Web 应用程序,它会绕过登录过程并使用“记住我”中的旧缓存凭据并允许我登录。

这是正常行为吗? 如果是这样,我唯一能想到的就是删除“记住我”选项或使用非常短的到期时间。

有什么建议吗?

【问题讨论】:

  • This post 详细讨论了这个问题。
  • 是的,你应该删除它。当用户通过 SSMS 直接连接到您的数据库并更改密码并且仍然可以登录时,他们会感到非常困惑。:)
  • 关闭窗口后清除 cookie。
  • 清除 cookie 可以在我的电脑上使用,但它仍然会影响其他使用 webapp 的人。

标签: c# asp.net forms authentication


【解决方案1】:

这是正常的。原因是为了记住用户,需要在客户端机器上存储某种形式的密钥,从而绕过登录过程。假设您正在使用 ASP.NET 的集成成员资格功能,您实际上在 cookie 中存储了一个唯一令牌,用于识别用户。出于各种充分的原因,这与密码无关。这意味着自动登录与密码无关,因此更改它在逻辑上不应影响此功能。

如果安全是一个问题,您确实可以考虑缩短记忆保持有效的时间跨度。或者正如您所提到的,如果它带来太大的风险,您可以完全避开此功能。密码记住是绝大多数网站上实现的共同功能,并且如果您使用的是 ASP.NET 的集成会员功能,您的安全风险就会降到最低,但最终您需要检查您的具体情况并确定此功能是否使对你有感觉。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2017-03-15
    • 2011-06-11
    • 1970-01-01
    • 1970-01-01
    • 2015-01-19
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多