ASP.NET / IIS:注销所有用户

时间:2010-03-01 10:02:31

标签: c# asp.net iis authentication asp.net-3.5

在IIS上运行的ASP.NET 3.5应用程序中,如何强制对所有当前登录和验证的用户进行“取消身份验证”?

iisreset似乎没有做到这一点!

2 个答案:

答案 0 :(得分:5)

ASP.NET身份验证旨在通过使用Cookie对IISReset具有弹性 - 执行IISReset将清除任何内存中的信息,但下次用户请求您的网站上的页面时,他们将发送他们的身份验证令牌(如果它没有超时)仍然有效,服务器将重新验证它们。

通过(例如)将应用程序开始时间存储在Application_Start中的全局变量中,然后将用户LastActivityDate与之进行比较,您可以编写可在重新启动后有效注销用户的内容。该值 - 如果它在开始时间之前,那么您可以在Application_SessionStartApplication_BeginRequest期间调用相应的注销方法。

答案 1 :(得分:2)

更改身份验证表单名称将需要所有用户的新身份验证。

自:

<authentication mode="Forms">
  <forms name="originalName" loginUrl="~/Account/Login"  />
</authentication>

要:

<authentication mode="Forms">
  <forms name="differentName" loginUrl="~/Account/Login"  />
</authentication>