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