更改密码后,FormsAuthentication仍可在会话中使用

时间:2012-05-12 03:35:58

标签: asp.net forms-authentication

我正在使用vanilla表单身份验证。如果我将多个会话作为同一个用户打开,并且我在一个会话中更改了密码,则另一个会话仍会进行身份验证。

我希望第二次会议能再次提示我取得我的证书。

我是否必须将散列密码写入cookie并在每个请求上检查以获取此功能?

对我来说似乎是一个安全漏洞。

2 个答案:

答案 0 :(得分:2)

这是预期的行为。 FormsAuthentication仅存储用户信息(使用其他一些数据来验证服务器实际上是否生成了该cookie)。 cookie本身是有效凭证(或票证或索赔)。如果您担心这一点,您应该减少表单cookie有效的时间或者可能更频繁地通过电话回家询问服务器是否发生了密码更改,如果是,请执行FormsAuthentication.SignOut()操作以强制重新登录。

也许不是你想要FormsAuthentication做什么,而是它做了什么。

希望这有帮助。

答案 1 :(得分:0)

如我的评论中所述,如果这是您想要的行为,您需要自己强制执行此操作。这可以像从您自己的“SecureBasePage”中获取所有安全页面一样简单。在该安全页面中,您可以轮询数据库以查看自用户被授权后密码是否已更改