Überprüfen Sie, ob sich das Active Directory-Kennwort von dem Cookie unterscheidet
Ich habe eine asp.net-App, die Benutzer mithilfe der Formularauthentifizierung bei Active Directory anmelden muss (die Windows-Authentifizierung ist unter den angegebenen Voraussetzungen keine Option).
Ich speichere Authentifizierungs-Cookies wie folgt:
if (Membership.ValidateUser(model.UserName, model.Password))
{
FormsAuthentication.SetAuthCookie(model.UserName, model.RememberMe);
}
Dies funktioniert hervorragend, mit der Ausnahme, dass das Cookie den Benutzer auch dann authentifiziert, wenn er sein Active Directory-Kennwort geändert hat.
Kann ich feststellen, ob sich das Passwort des Benutzers geändert hat?
Ich verwende asp.net MVC3 mit .NET 4
Was ich versucht habe
Wenn Sie der Meinung sind, dass dieser Code funktionieren sollte, enthält die HttpWebResponse jedoch niemals Cookies. Nicht ganz sicher, was ich falsch mache.
HttpWebRequest request = (HttpWebRequest)WebRequest.Create(Request.Url);
request.CookieContainer = new CookieContainer();
HttpWebResponse response = (HttpWebResponse)request.GetResponse();
Cookie authCookie = response.Cookies["AuthCookie"];
if (authCookie.TimeStamp.CompareTo(Membership.GetUser().LastPasswordChangedDate) < 0)
{
authCookie.Expired = true;
}