Mvc 安全性之 自定义属性验证

来源:互联网 发布:网络购物管辖法院 编辑:程序博客网 时间:2024/05/17 01:21

源码下载

http://download.csdn.net/detail/woxpp/3009469

 

属性代码

 

    public class TestAuthorizeAttribute : AuthorizeAttribute    {        protected override bool AuthorizeCore(HttpContextBase httpContext)        {            bool result = true;             if (!string.IsNullOrEmpty(Roles))            {                StudentModel model = TestContext._context.Items["Student"] as StudentModel;                if (model != null)                {                    if (Roles.Contains(model.Roles))                    {                        result = true;                    }                    else                    {                        httpContext.Response.StatusCode = 403; //无权限状态码                        result = false;                    }                }                else                {                    httpContext.Response.StatusCode = 404; //无权限状态码                    result = false;                }            }            return result;        }        public override void OnAuthorization(AuthorizationContext filterContext)        {            base.OnAuthorization(filterContext);            if (filterContext.HttpContext.Response.StatusCode == 403)                filterContext.Result = new RedirectResult("/Student/UnValidate");            if (filterContext.HttpContext.Response.StatusCode == 404)                filterContext.Result = new RedirectResult("/Student/NotFind");        }    }


 

 

调用方法


    [TestAuthorizeAttribute(Roles = "admin,guest")]

原创粉丝点击