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 应用两个策略吗?

4

1 回答 1

2

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

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

我希望你的问题是正确的。

于 2014-03-14T13:17:33.840 回答