【问题标题】:Membership checking against current Role针对当前角色的成员资格检查
【发布时间】:2012-02-02 20:29:04
【问题描述】:

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

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

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

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

检查用户当前登录的角色的“更好”方法是什么?

【问题讨论】:

  • 也许您可以覆盖 Authorize 属性。 [Authorize(Rol = "Admin/Mexico")] 成为管理员和墨西哥。

标签: asp.net-mvc membership


【解决方案1】:

您可以创建自定义 Authorize 属性:

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

然后像这样使用你的属性:

[CustomAuthorizeAttribute (Roles="Admin")]

This article 更详细地介绍了该主题。

【讨论】:

    猜你喜欢
    • 2013-03-31
    • 2011-02-03
    • 2021-09-10
    • 1970-01-01
    • 1970-01-01
    • 2011-12-22
    • 1970-01-01
    • 2011-10-16
    • 1970-01-01
    相关资源
    最近更新 更多