4

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

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

有什么建议么?

4

1 回答 1

1

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

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

于 2013-01-30T19:23:39.757 回答