Asp.net mvc ASP.NET MVC ActiveDirectoryMembershipProvider用户即使密码已更改,也会保持登录状态

Asp.net mvc ASP.NET MVC ActiveDirectoryMembershipProvider用户即使密码已更改,也会保持登录状态,asp.net-mvc,active-directory,membership-provider,Asp.net Mvc,Active Directory,Membership Provider,我正在我的web应用程序中使用ActiveDirectoryMembershipProvider。我使用用户的域凭据进行身份验证,如下所示 if (Membership.ValidateUser(m.Username, m.Password)) FormsAuthentication.SetAuthCookie(m.Username, true); 这很有效 但是,即使在active directory中更改了用户的密码,用户仍会保持登录到web应用程序 如果用户的域密码发生更改,或其

我正在我的web应用程序中使用ActiveDirectoryMembershipProvider。我使用用户的域凭据进行身份验证,如下所示

if (Membership.ValidateUser(m.Username, m.Password))
    FormsAuthentication.SetAuthCookie(m.Username, true);
这很有效

但是,即使在active directory中更改了用户的密码,用户仍会保持登录到web应用程序


如果用户的域密码发生更改,或其帐户被禁用等,我如何确保用户不会一直登录到web应用程序?

我不是100%确定,但听起来您不高兴用户的身份验证票证继续工作,即使他们的密码更改/帐户过期

一旦用户登录并拥有身份验证票证(cookie),直到票证过期(在web.config文件中设置)之前,用户不会再次接受身份验证挑战。以下是处理此问题的两条建议:

  • 等待身份验证票证(cookie)过期。在下次登录时,用户将 必须使用他们的新密码。此解决方案的变体包括使用仅会话cookie,以便用户必须在浏览器关闭时始终登录(建议用于AD身份验证)
  • 编写一个Http模块,查找最近更新的用户列表,并在Http管道的早期检查身份验证票证。如果一个身份验证票证通过并与更新用户列表相匹配,您将导出该用户的cookie并将其重新定向到登录页面。这里有一个类似的问题可以帮助您开始:


  • 我不是百分之百确定,但听起来你不高兴用户的身份验证票证继续工作,即使他们的密码更改/帐户过期

    一旦用户登录并拥有身份验证票证(cookie),直到票证过期(在web.config文件中设置)之前,用户不会再次接受身份验证挑战。以下是处理此问题的两条建议:

  • 等待身份验证票证(cookie)过期。在下次登录时,用户将 必须使用他们的新密码。此解决方案的变体包括使用仅会话cookie,以便用户必须在浏览器关闭时始终登录(建议用于AD身份验证)
  • 编写一个Http模块,查找最近更新的用户列表,并在Http管道的早期检查身份验证票证。如果一个身份验证票证通过并与更新用户列表相匹配,您将导出该用户的cookie并将其重新定向到登录页面。这里有一个类似的问题可以帮助您开始:


  • 答案是定期(每隔30分钟左右)检查User.IsApproved和User.LastPasswordChangedDate,以确保用户凭据仍然有效

    为此,您需要手动创建FormsAuthenticationTicket和cookie,而不是使用FormsAuthentication.SetAuthCookie

    将验证用户的日期放入UserData中,并将其与LastPasswordChangedDate进行比较

    我已经实现了这一点,它工作得非常完美

    更多信息请点击此处


    答案是定期(每隔30分钟左右)检查User.IsApproved和User.LastPasswordChangedDate,以确保用户凭据仍然有效

    为此,您需要手动创建FormsAuthenticationTicket和cookie,而不是使用FormsAuthentication.SetAuthCookie

    将验证用户的日期放入UserData中,并将其与LastPasswordChangedDate进行比较

    我已经实现了这一点,它工作得非常完美

    更多信息请点击此处