根据当前角色进行成员资格检查

发布于 2025-01-01 11:28:05 字数 290 浏览 0 评论 0原文

我有一个 Web 应用程序 (MVC),它使用会员资格进行身份验证/身份验证,其中用户可以拥有多个角色以及具有不同角色的多个国家/地区。

假设,user1 是美国的管理员和编辑,并且是墨西哥的唯一编辑。当用户登录系统时,系统会提示他选择两者(国家和角色)。

AdminController 具有 [Authorize(Rol = "Admin")] 属性。

在这种情况下,如果用户以编辑者身份登录美国,则必须禁止 AdminContoller 中的操作。

哪种“更好”的方法来检查用户当前登录的角色?

I have a web application (MVC) that uses Membership for auth/auth where the user can have more than one Role and multiples countries with diferent roles.

Let say, user1 is Admin and Editor in USA and only Editor in Mexico. When the users logs in to the system he is prompted to select both (country and role).

AdminController has [Authorize(Rol = "Admin")] attribute.

In this case if the user is logged in USA as Editor an action in AdminContoller has to be forbbiden.

Which is the "better" approach to check the Role which the user is currently logged on?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

赴月观长安 2025-01-08 11:28:05

您可以创建自定义授权属性:

public class CustomAuthorizeAttribute : AuthorizeAttribute
{
    protected override bool AuthorizeCore(HttpContextBase httpContext)
    {
        // Code here checks that user is Admin for currently selected Country
    }
}

然后按如下方式使用您的属性:

[CustomAuthorizeAttribute (Roles="Admin")]

本文更详细地介绍了该主题。

You can create a custom Authorize attribute:

public class CustomAuthorizeAttribute : AuthorizeAttribute
{
    protected override bool AuthorizeCore(HttpContextBase httpContext)
    {
        // Code here checks that user is Admin for currently selected Country
    }
}

and then use your attribute as so:

[CustomAuthorizeAttribute (Roles="Admin")]

This article covers the subject in more detail.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文