Wie kann ich die Abmeldung eines Benutzers erzwingen, wenn sein Benutzername von einem anderen Benutzer geändert wird?
In meiner Anwendung verwende ich die Formularauthentifizierung, um Benutzer anzumelden und abzumelden.
Eine Funktion ist, dass der Administrator den Benutzernamen anderer Benutzer ändern kann. In diesem Fall muss ich den Benutzer abmelden, dessen Benutzername geändert wurde.
Wenn ich dies nicht tue, erhalten sie aufgrund ihrer zuvor gesetzten Cookies Zugriff auf die Anwendung und erhalten Fehlermeldungen (da ihr Benutzername nicht existiert und es Teile gibt, in denen ich ihren Benutzernamen für bestimmte Funktionen verwende).
Wie kann ich diese Benutzer zwingen, sich mithilfe der Formularauthentifizierung abzumelden?
UPDATE:
public override void OnActionExecuting(ActionExecutingContext filterContext)
{
string controller = filterContext.RouteData.Values["controller"].ToString();
string action = filterContext.RouteData.Values["action"].ToString(); ;
// Below returns the previous username, which does not exist anymore in db.
string userName = HttpContext.Current.User.Identity.Name;
UnitOfWork unitOfWork = new UnitOfWork();
if (!unitOfWork.UserRepository.UserExists(userName))
{
FormsAuthentication.SignOut();
filterContext.HttpContext.Session.Clear();
filterContext.HttpContext.Session.Abandon();
// I am not using Roles.
}
unitOfWork.Dispose();
base.OnActionExecuting(filterContext);
}
In meinem globalen Kundenfilter überprüfe ich, ob Benutzer vorhanden sind oder nicht, wenn ich sie nicht abmelde. Es funktioniert jedoch nicht. Unter Arbeit verstehe ich, dass sie die Authentifizierung bestehen und Zugriff auf die Anwendung erhalten.
Danke im Voraus.