0

MVC5 アプリケーションで Fluent Security を使用しています。RequirePortalRole() というカスタム ポリシーを作成しました。テスト目的で、常に成功を返します。

私のセキュリティ設定は次のとおりです

            configuration.ForAllControllers().DenyAnonymousAccess();
            configuration.For<AccountController>(x => x.LogOn()).Ignore();
            configuration.For<HomeController>().AddPolicy(new RequirePortalRole());

RequiredPortalRole() は常に PolicyResult.CreateSuccessResult(this); を返すため。ホーム コントローラーでは何にでもアクセスできると思っていましたが、アカウント コントローラーの LogOn アクション以外には何もアクセスできませんでした。カスタム ポリシーは、ForAllController ポリシーを上書きしていないようです。

理由はありますか?HomeController に実際に 2 つのポリシーを適用していますか?

4

1 に答える 1

2

ポリシーが追加され、すべてのリクエストに対してポリシーが適用されます。HomeController のすべてにアクセスしたい場合は、ポリシーを明示的に削除する必要があると思います。

        configuration.For<HomeController>()
            .RemovePolicy<DenyAnonymousAccessPolicy>()
            .AddPolicy<RequirePortalRole>();

あなたの質問が正しかったことを願っています。

于 2014-03-14T13:17:33.840 に答える