1

可能重复:
Fluent Security - 配置参数化控制器操作

我正在尝试 Fluent Security 在 ASP.NET MVC 应用程序中强制实施安全策略,但我无法为采用参数的控制器方法定义策略。作为我的意思的一个例子,下面的代码片段显示了应该保护的控制器:

public class AccountController : Controller
{
    ...

    [HttpPost]
    [ValidateAntiForgeryToken]
    public ActionResult LogOff()
    {
        return RedirectToAction("Index", "Home");
    }

    [HttpPost]
    [ValidateAntiForgeryToken]
    public ActionResult Disassociate(string provider, string providerUserId)
    {
        return View();
    }
}

而且,此代码片段(从概念上)显示了我如何尝试配置 Fluent Security 以允许对两个控制器方法进行身份验证访问。

SecurityConfigurator.Configure(config => {
    config.For<AccountController>().DenyAuthenticatedAccess();
    config.For<AccountController>(x => x.LogOff()).DenyAnonymousAccess();
    config.For<AccountController>(x => x.Disassociate()).DenyAnonymousAccess();
});

但是,后一个代码不会构建,因为没有Disassociate. 编译器报告以下内容:No overload for method 'Disassociate' takes 0 arguments.

如何为该方法配置 Fluent Security AccountController.Disassociate(string, string)

4

1 回答 1

3

看来您可以传递预期类型的​​任何值,因此在我的情况下,我可以执行以下操作来安抚编译器:

config.For<AccountController>(x => x.Disassociate("", "")).DenyAnonymousAccess();
于 2012-12-01T20:31:31.450 回答