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