Как заставить пользователя выйти из системы, когда его / ее имя изменилось другим пользователем?
В моем приложении я использую Forms-Authentication для входа и выхода пользователей.
Одной из функций является администратор может изменить имя пользователя других пользователей. В этом случае мне нужно выйти из системы, чье имя пользователя изменилось.
Если я этого не сделаю, из-за своих файлов cookie, установленных ранее, они получат доступ к приложению и получат сообщения об ошибках (поскольку их имя пользователя не существует, и есть части, где я использую их имя пользователя для некоторых функций).
Как я могу заставить этих пользователей выйти из системы с помощью Forms-Authentication?
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);
}
В моем глобальном фильтре клиентов я проверяю, существует ли пользователь или нет, если нет, я выхожу из него. Тем не менее, это не работает. Под работой я подразумеваю, что они проходят аутентификацию и получают доступ к приложению.
Заранее спасибо.