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