流畅的安全自定义政策

时间:2014-01-27 00:54:03

标签: asp.net-mvc asp.net-mvc-5 fluent-security

我在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吗?

1 个答案:

答案 0 :(得分:2)

添加了策略,并为每个请求强制执行每个策略。我想如果你想访问HomeController上的所有内容,你应该明确删除策略:

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

我希望我的问题是对的。