3

githubの Thinktecture サンプルResourceAuthorizationを使用して、サンプル Web アプリケーションを構築しようとしています。

これで、authorize 属性で装飾されたコントローラーにアクションができました。

[ResourceAuthorize("Edit", "Resource")]
    public ActionResult Edit()
    {
        return View();
    }

独自の AuthorizationManager を実装しました。

 public class AuthorizationManager : ResourceAuthorizationManager
{
    public override Task<bool> CheckAccessAsync(ResourceAuthorizationContext context)
    {
        var resource = context.Resource.First().Value;

        if (resource == "Resources")
        {
            return CheckResourcesAccessAsync(context);
        }
        else
        {
            return Nok();
        }
    }

今アプリケーションを実行しようとすると、エラーが発生し続けます:

No AuthorizationManager set.

次のように web.config にマネージャーを登録する必要があるのではないかと思いました。

 <system.identityModel>
<identityConfiguration>
    <claimsAuthenticationManager type="Namespace.xy.AuthorizationManager, Namespace.xy" />
</identityConfiguration>
</system.identityModel>

うまくいきません。私は何を間違っていますか?

4

1 に答える 1