2014-01-27 93 views
0

我在MVC5应用程序中使用Fluent Security。我创建了一个名为RequirePortalRole()的自定义策略。为了测试的目的,我总是回归成功。Fluent Security自定义策略

我的安全配置如下

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

由于RequiredPortalRole()始终返回PolicyResult.CreateSuccessResult(本);我期望我可以访问家庭控制器上的任何东西,除了帐户控制器中的LogOn操作外没有其他任何内容。自定义策略看起来并没有超出ForAllController策略。

任何想法为什么不呢?我实际上是应用两个政策到HomeController?

回答

2

添加了策略,并且每个请求都执行了其中的每个策略。我认为,如果你想在HomeController的,你应该明确地删除该策略获得的一切:

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

我希望我收到了你的问题的权利。

+0

我可以证实@Hernan的建议是正确的解决方案。 –