我目前有几个控制器,我用[Authorize]
修饰器进行了限制。我现在需要在几个不同的控制器中做到这一点,是否有一个中央位置,这可以放在?一旦进入那个位置,我可以告诉它哪个控制器可以应用它,而不是将它放到每个单独的控制器文件中?申请从一个共同的位置授权
1
A
回答
2
怎么是这样的:
public class CustomAuthorizeAttribute : AuthorizeAttribute
{
public override void OnAuthorization(HttpActionContext actionContext)
{
string controllerName = actionContext.ControllerContext.ControllerDescriptor.ControllerName;
bool shouldAuthorize = //.. Check if controller needs authorization
if(!shouldAuthorize)
SkipAuthorization(actionContext);
else if(!IsAuthorized(actionContext))
HandleUnauthorizedRequest(actionContext);
}
}
,那么你会在全球应用此过滤器:
public static void RegisterGlobalFilters(GlobalFilterCollection filters)
{
filters.Add(new CustomAuthorizeAttribute());
}
注意,控制器的验证完成内自定义属性。
0
你可以使一个基础控制器的其他控制器继承。在这个类中应用您的主授权属性。
Namespace Controllers
<SecureAuthorizeAttribute>
Public Class SecureController
Inherits Controller
End Class
End Namespace
然后在您的其他控制器:
Public Class ViewDetailsController
Inherits SecureController
End Class
这将适用于<SecureAuthorizeAttribute>
每一个动作中,从SecureController
继承的类。
相关问题
- 1. GPL申请的授权
- 2. 不要再向Google App申请授权
- 3. 申请授予临时权限
- 4. 如何申请Google授权令牌?
- 5. 位置权限检查和授权
- 6. 如何正确申请OAuth2.0中的授权码?
- 7. 多个授权请求
- 8. 打开从另一个(IOS)的申请
- 9. 带共享点的Infopath:从以下位置检索XML文档未被授权:
- 10. 已完成401未经授权使用密码申请表
- 11. 其他方式询问申请许可授权应用
- 12. ASP.NET网络配置URL位置授权
- 13. Facebook API:申请publish_stream权限
- 14. 如何申请权限
- 15. 申请保证金运行CSS位置
- 16. Swift - 如果未授予核心位置请求权限
- 17. 授权HttpClient请求
- 18. 怎么办授权请求,以便从不同的端口号
- 19. 的Node.js从申请
- 20. IOS Swift用户位置授权
- 21. 核心位置管理不授权
- 22. ASP.Net IIS位置路径授权问题
- 23. 如何在一个申请
- 24. WP js_composer.min.css没有申请单一职位
- 25. 从服务请求Oauth Google授权
- 26. 从http请求获取授权标头
- 27. 一旦应用程序被授权使用JavaScript SDK,就可以申请新的权限
- 28. 重新申请Xamarin.Auth的facebook权限
- 29. PouchDB同步授权?
- 30. 我该如何申请并从模拟账户授予管理员同意?
您可以创建一个自定义过滤器,但是它将全局应用 – singsuyash
您可以创建具有授权属性的baseController。因为属性也被继承。即使您可以根据角色授权创建层次结构。有关更多信息,请参阅答案http:///stackoverflow.com/a/32803405/4293929 – MstfAsan