我正在使用属于 MVC2 默认项目一部分的 MembershipProvider。
我希望能够获取用户名列表,注销用户,并在需要时销毁他们的会话。我能想到的最接近的是:
foreach(string userName in UserNames)
{
MembershipProvider MembershipProvider = new MembershipProvider();
MembershipUser membershipUser = MembershipProvider.GetUser(userName, true);
Session.Abandon();
FormsAuthentication.SignOut();
}
我认为我需要使用与我想要注销的用户相关的会话和/或注销方法,但我不确定这些方法在哪里。
执行此操作的正确方法是什么?
那不行...
Session.Abandon() 将用于当前 HttpContext。不适用于您尝试做的每个用户。
FormsAuthentication.SignOut() 相同。
最好的办法是在 Application_AuthenticateRequest 事件中根据该数组检查当前用户并将其注销:
protected void Application_AuthenticateRequest(Object sender, EventArgs e)
{
if (User.Identity.IsAuthenticated)
{
//add your ckeck here
if (Usernames.Contains(User.Identity.Name))
{
Session.Abandon();
FormsAuthentication.SignOut();
}
}
}
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)