扩展AuthorizeAttribute
Posted plina
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了扩展AuthorizeAttribute相关的知识,希望对你有一定的参考价值。
MVC中经常会用到关于设置访问权限的问题:
如果我们扩展了AuthorizeAttribute,那么我们只需要在类或方法前加上此attribute,即可实现权限问题。
AttributeTargets 权限适用于类或者方法
[AttributeUsage(AttributeTargets.Class|AttributeTargets.Method,Inherited=true,AllowMultiple=true)] public sealed class SecurityAuthorizationAttribute :AuthorizeAttribute { protected override bool AuthorizeCore(HttpContextBase httpContext) { if (httpContext == null) { throw new ArgumentException("httpContext"); } bool result = true; // 权限设置
return result; } //return true 是不会触发 handleUnauthorizedRequest.
protected override void HandleUnauthorizedRequest(AuthorizationContext filterContext) { //base.HandleUnauthorizedRequest(filterContext); filterContext.Result = new ViewResult { ViewName = "~/Views/Shared/Error.cshtml", ViewData = new ViewDataDictionary() { { "ErrorMessage", Constants.IsAccessDenied } } }; } }
//没有权限时候跳转到的error页面。
以上是关于扩展AuthorizeAttribute的主要内容,如果未能解决你的问题,请参考以下文章
WebAPI的AuthorizeAttribute扩展类中获取POST提交的数据
有没有办法让 AuthorizeAttribute 响应状态码 403 Forbidden 而不是重定向?
每当在控制器/方法上使用 AuthorizeAttribute 时执行过滤器
getSupportFragmentManager() 在活动扩展片段中未定义