我想使用密码过期策略。对于想要登录网站的用户,我们可以在登录控制的身份验证事件中检查密码。但是那些已登录但不会被登录页面缓存的用户呢? In this question,建议处理HttpApplication.PostAuthenticateRequest
事件,这不是一个好方法。
我在考虑处理session_start()
事件。对于每个用户,它会触发一次,我们可以检查用户密码是否是最新的。但我不知道一个已登录的用户是否会在几天之后访问该网站此事件是否会触发?
答案 0 :(得分:1)
您确定要仅因为密码已过期而要将用户注销吗?登录cookie过期和密码过期是单独的问题。
在维护登录cookie之前,我没有看到任何错误,直到它自己过期,然后强制用户在下次登录时更改他/她的密码。只需确保您不会发布过期有效期过长的Cookie,迟早所有用户都必须重新登录。这就是你可能遇到密码到期的地方。
另请注意,检查每个请求的到期时间(无论是PostAuthenticate还是PreHandlerExecute都无关紧要)可能是不可能的。如果您的站点依赖外部身份验证源,则无法访问并检查密码是否过期。想象一下,要求Google或Facebook(如果您的用户在那里进行身份验证)密码是否已过期。这是不容易的(或根本不可能)。