我正在使用属于 MVC2 默认项目的 MembershipProvider。
我希望能够获取用户名列表,然后注销用户,并在需要时销毁他们的 session 。我能想到的最接近的是:
foreach(string userName in UserNames)
{
MembershipProvider MembershipProvider = new MembershipProvider();
MembershipUser membershipUser = MembershipProvider.GetUser(userName, true);
Session.Abandon();
FormsAuthentication.SignOut();
}
我想我需要使用与我想注销的用户相关的 session 和/或注销方法,但我不确定它们在哪里。
执行此操作的正确方法是什么?
最佳答案
那是行不通的...
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();
}
}
}
关于c# - 如何注销不是当前用户的多个 MembershipUser?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4600109/