2014-01-27 91 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的建議是正確的解決方案。 –