ASP.net Identity 2.0退出另一个用户

时间:2014-09-16 20:52:05

标签: c# asp.net-mvc asp.net-identity

我使用的是asp.net MVC和ASP.net Identity 2.0。

在我的网站上,管理员可以选择禁止用户,我希望禁止用户自动从网站注销。

我知道我可以通过调用

来注销当前用户
AuthenticationManager.SignOut();

但是可以注销其他用户吗?或者可能缩短他的会话时间还是什么?

我知道我可以对控制器进行全局过滤,禁止禁止用户访问,但是过滤器会针对每个用户运行,因此我对此解决方案不满意。

2 个答案:

答案 0 :(得分:17)

如果您使用securitystampvalidator功能,当用户被禁止时,只需致电:UpdateSecurityStamp(userId),以便在下次检查时使任何现有的登录Cookie无效。

More info about SecurityStamp?

答案 1 :(得分:15)

您需要在Auth.Config.cs中配置Cookie失效:

public void ConfigureAuth(IAppBuilder app)
{
    // important to register UserManager creation delegate. Won't work without it
    app.CreatePerOwinContext(UserManager.Create);

    app.UseCookieAuthentication(new CookieAuthenticationOptions
    {
        Provider = new CookieAuthenticationProvider
        {
            OnValidateIdentity = SecurityStampValidator
                .OnValidateIdentity<UserManager, ApplicationUser, int>(
                    validateInterval: TimeSpan.FromMinutes(10),
                    regenerateIdentityCallback: (manager, user) => user.GenerateUserIdentityAsync(manager))
        },
        // other configurations
    });

    // other stuff
}

然后更新安全标记,因为Hao Kung在用户被禁止时说。

blogged about this recently