1

在 ASP.NET MVC 中,IAuthorizationFilter任何其他过滤器和操作方法之前运行。那么对于某些需要在任何其他逻辑运行之前执行检查和分析传入 HttpRequest 的逻辑的场景,实施 IAuthorizationFilter 是否合适?或者 IAuthorizationFilter 应该只用于授权相关的逻辑,那么我应该采取什么其他方式呢?

4

2 回答 2

1

Its not good idea to use IAuthorizationFilter for any thing other than Authorization. You can just create a global filter with order so your filter can execute before any other actionfilters

public static void RegisterGlobalFilters(GlobalFilterCollection filters)
{
    filters.Add(new SpecialFilterAttribute(), 1);
    filters.Add(new LogFilter(), 2);
}

Here is the other SO question related to it

于 2015-05-02T04:33:09.500 回答
0

授权过滤器应仅用于授权。针对不同的目的,有不同的过滤器。您必须通过继承正确的类型来创建自己的。https://msdn.microsoft.com/en-us/library/gg416513(VS.98).aspx

我不会建议对应用程序的每个操作都应用授权过滤器,最好通过简单地执行 [AllowUserWithPermissions("ManageScenarious")] 之类的操作将它们应用到控制器或操作级别。

于 2015-05-02T05:56:13.060 回答