相关疑难解决方法(0)

如何创建特定于区域,控制器和操作的自定义AuthorizeAttribute?

换句话说,这是一个非常愚蠢的想法吗?

[AttributeUsage(AttributeTargets.Class | AttributeTargets.Method)]
public class AuthorizeActionAttribute : AuthorizeAttribute
{
    public override void OnAuthorization(AuthorizationContext filterContext)
    {
        // get the area, controller and action
        var area = filterContext.RouteData.Values["area"];
        var controller = filterContext.RouteData.Values["controller"];
        var action = filterContext.RouteData.Values["action"];
        string verb = filterContext.HttpContext.Request.HttpMethod;

        // these values combined are our roleName
        string roleName = String.Format("{0}/{1}/{2}/{3}", area, controller, action, verb);

        // set role name to area/controller/action name
        this.Roles = roleName;

        base.OnAuthorization(filterContext);
    }
}
Run Code Online (Sandbox Code Playgroud)

更新 我试图避免以下情况,在我们拥有非常精细的角色权限的情况下,因为角色是基于每个客户端设置的并附加到用户组:

public partial class HomeController : Controller
{
    [Authorize(Roles = "/supplierarea/homecontroller/indexaction/")]
    public …
Run Code Online (Sandbox Code Playgroud)

asp.net-mvc attributes asp.net-mvc-3

8
推荐指数
2
解决办法
3万
查看次数

标签 统计

asp.net-mvc ×1

asp.net-mvc-3 ×1

attributes ×1