在我的应用我使用表单的身份验证登录和注销用户。
其中一个功能是admin可以更改其他用户的用户名。 在这种情况下,我需要先退出,其用户名更改的用户。
如果我不这样做,因为之前设置自己的饼干,他们访问应用程序和收到错误消息(因为他们的用户名不存在,有些情况下我用自己的用户名某些功能部件)。
我怎么能强制用户进行注销使用表单的身份验证?
更新:
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);
}
在我的客户全局过滤,我检查用户是否存在与否,如果不是我签出来。 但是,它不工作。 通过工作,我的意思是,他们通过认证并获得应用。
提前致谢。