c# - 如何注销不是当前用户的多个 MembershipUser?

标签 c# asp.net-mvc-2 membership-provider

我正在使用属于 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/

相关文章:

asp.net - MVC 3 空查询字符串参数值绑定(bind)为空字符串而不是 null

asp.net - 更改后 CSS 未应用

具有 SQL 架构的 ASP.NET 成员(member)资格提供程序

asp.net - Sitecore - 不尊重域的角色提供者的切换提供者

c# - .Net 控制台应用程序中的用户 secret 问题

c# - ASP.Net Core 2.0 中的自动映射器

c# - ViewModel 是否应该具有绑定(bind)到模型上的 DependencyProperties 的直通 DependencyProperties?

c# - WCF - 接收对 http ://xxxxx/Service/的 HTTP 响应时出错

c# - 存储库模式和 MVC 帮助

c# - 扩展 .NET MembershipCreateStatus 枚举