Jak wymusić wylogowanie użytkownika, gdy jego / jej nazwa użytkownika została zmieniona przez innego użytkownika?
W mojej aplikacji używam uwierzytelniania formularzy do logowania i wylogowywania użytkowników.
Jedną z funkcji jest admin może zmienić nazwę użytkownika innych użytkowników. W takim przypadku muszę wylogować użytkownika, którego nazwa użytkownika została zmieniona.
Jeśli tego nie zrobię, ze względu na ich wcześniej ustawione pliki cookie, uzyskują dostęp do aplikacji i otrzymują komunikaty o błędach (ponieważ ich nazwa użytkownika nie istnieje i istnieją części, w których używam ich nazwy użytkownika dla niektórych funkcji).
Jak mogę zmusić tych użytkowników do wylogowania się za pomocą uwierzytelniania za pomocą formularzy?
AKTUALIZACJA :
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);
}
W moim globalnym filtrze klienta sprawdzam, czy użytkownik istnieje, czy nie, jeśli nie, wylogowuję ich. Jednak nie działa. Dzięki pracy mam na myśli uwierzytelnianie i dostęp do aplikacji.
Z góry dziękuję.