在IIS上运行的ASP.NET 3.5应用程序中,如何强制对所有当前登录和验证的用户进行“取消身份验证”?
iisreset
似乎没有做到这一点!
答案 0 :(得分:5)
ASP.NET身份验证旨在通过使用Cookie对IISReset具有弹性 - 执行IISReset将清除任何内存中的信息,但下次用户请求您的网站上的页面时,他们将发送他们的身份验证令牌(如果它没有超时)仍然有效,服务器将重新验证它们。
通过(例如)将应用程序开始时间存储在Application_Start
中的全局变量中,然后将用户LastActivityDate
与之进行比较,您可以编写可在重新启动后有效注销用户的内容。该值 - 如果它在开始时间之前,那么您可以在Application_SessionStart
或Application_BeginRequest
期间调用相应的注销方法。
答案 1 :(得分:2)
更改身份验证表单名称将需要所有用户的新身份验证。
自:
<authentication mode="Forms">
<forms name="originalName" loginUrl="~/Account/Login" />
</authentication>
要:
<authentication mode="Forms">
<forms name="differentName" loginUrl="~/Account/Login" />
</authentication>