如何在特定用户的角色更改后注销

本文关键字:角色 注销 用户 | 更新日期: 2023-09-27 18:28:39

在我正在进行的项目中,管理员可以删除用户发布的评论。当评论被删除时,我会调用一个函数来检查用户是否还有足够的评论来访问网站的特定部分。

如果用户没有足够的评论,他的角色就会改变,这种方法被称为:

    public void AfterRoleChanges(string c)
    {
        var authenticationManager = System.Web.HttpContext.Current.GetOwinContext().Authentication;
        authenticationManager.SignOut(DefaultAuthenticationTypes.ExternalCookie);
        var user = UserManager.FindById(c);
        var identity = UserManager.CreateIdentity(user, DefaultAuthenticationTypes.ApplicationCookie);
        authenticationManager.SignIn(new AuthenticationProperties { IsPersistent = false }, identity);
    }

其中c=userId。但问题是,如果管理员单击删除按钮,管理员就会注销并以该用户身份登录,因为authenticationmanager只能从"当前"上下文中调用。

有没有办法获取特定用户ID的authenticationmanager?

如何在特定用户的角色更改后注销

HttpContext.Current有一个HttpContext类型。您可以在静态类中定义一个列表或字典,以便在登录时存储上下文,并在注销时将其丢弃。通过访问列表,您可以访问所有用户并根据需要进行搜索。

建议使用Dictionary,因为您可以使用userID作为键来存储上下文

希望它能有所帮助。