5

次のコントローラーと、承認属性を持つアクションがあるとします。

    public class IndexController : Controller
    {
        //
        // GET: /Index/

        [Authorize(Roles="Registered")]
        public ActionResult Index()
        {
            return View();
        }

    }

インターネット全体を検索しましたが、この単純な質問に対する答えが見つかりませんでした:特定のアクション/コントローラーに注釈を付けたロールを取得するにはどうすればよいですか? この場合: Index Action has: string[] = {"Registered"}

4

1 に答える 1

5

最後に解決策を見つけました!思ったより簡単でした!ああ、AuthorizeAttribute からクラスを拡張し、それをアクションで使用する必要があります。必要な情報は、継承されたクラスの属性「ロール」です。

public class CustomAuthorizationAttribute : AuthorizeAttribute
{

    public override void OnAuthorization(AuthorizationContext filterContext)
    {

        var roles = this.Roles;

        base.OnAuthorization(filterContext);
    }

}

そして、インデックス コントローラーで:

public class IndexController : Controller
    {
        //
        // GET: /Index/

        [CustomAuthorizationAttribute(Roles = "Registered")]
        public ActionResult Index()
        {
            return View();
        }

    }
于 2012-12-08T13:24:31.123 に答える