我正在尝试创建自己的[Authorize]属性,以便可以使用自己的授权逻辑来具有层次结构角色。

如果有人在 Controller 或 Action 上执行[Authorize(Roles = "Admin")]如何在AuthorizeCore函数中获取字符串“Admin”?

我正在使用此代码:

public class Authorize : AuthorizeAttribute
{
    protected override bool AuthorizeCore(HttpContextBase httpContext)
    {
        //authorize role logic
            if (true)
                return true;

        return false;
     }
    }

MVC4,.net 4.5,C#,VS 2012

最佳答案

这是您遇到的常见问题。

此建议发布后应该在MVC4中起作用,因为它在MVC 3中起作用:-ASP.NET MVC - Alternative to Role Provider?

    protected override bool AuthorizeCore(HttpContextBase httpContext)
    {
        bool isAdmin;
        if(Roles.Contains("Admin"))
           isAdmin = true;

        return isAdmin ;
    }

10-04 22:28