【问题标题】:ASP.NET/IIS: Log out all usersASP.NET/IIS:注销所有用户
【发布时间】:2010-03-01 10:02:30
【问题描述】:

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

iisreset 似乎没有成功!

【问题讨论】:

  • 请说明您的身份验证机制以及您如何存储会话信息。
  • Timores 是正确的,您的身份验证机制需要更多信息,在许多情况下,简单地重置 IIS 不太可能重置身份验证
  • 我在一个名为 EPiServer 的 CMS 中使用身份验证系统。

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


【解决方案1】:

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

发件人:

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

收件人:

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

【讨论】:

    【解决方案2】:

    ASP.NET 身份验证由于使用了 cookie 而设计为能够适应 IISReset - 执行 IISReset 将清除所有内存中的信息,但下次用户请求您网站上的页面时,他们将发送他们的身份验证令牌(如果尚未超时)仍然有效,服务器将重新对其进行身份验证。

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

    【讨论】:

      猜你喜欢
      • 2018-07-25
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-04-30
      • 2019-07-09
      • 2016-02-17
      • 2023-04-10
      相关资源
      最近更新 更多