我发现我可以通过添加行来保护MVC应用中的所有MVC Controller
filters.Add(new System.Web.Mvc.AuthorizeAttribute());
到RegisterGlobalFilters
。我的ApiControllers仍然需要通过手动添加[Authorize]
属性来保护。是否有类似的行我可以添加以保护我的所有WebAPI ApiController
?
WebAPI的[Authorize]
属性位于System.Web.Http.AuthorizeAttribute
,但我没有成功
filters.Add(new System.Web.Http.AuthorizeAttribute());
抛出错误
给定的过滤器实例必须实现以下一个或多个过滤器接口:IAuthorizationFilter,IActionFilter,IResultFilter,IExceptionFilter。
答案 0 :(得分:2)
我假设您在问题中注册GlobalFilterCollection
,但这适用于MVC。您需要在AuthorizeAttribute
注册WebApiConfig.cs
:
public static class WebApiConfig
{
public static void Register(HttpConfiguration config)
{
config.Filters.Add(new AuthorizeAttribute());
// Other web api config rules...
}
}