我在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吗?
答案 0 :(得分:2)
添加了策略,并为每个请求强制执行每个策略。我想如果你想访问HomeController上的所有内容,你应该明确删除策略:
configuration.For<HomeController>()
.RemovePolicy<DenyAnonymousAccessPolicy>()
.AddPolicy<RequirePortalRole>();
我希望我的问题是对的。