你的位置:首页 > 软件开发 > ASP.net > mvc 自定义 AuthorizeAttribute 验证逻辑

mvc 自定义 AuthorizeAttribute 验证逻辑

发布时间:2015-10-30 18:00:04
public class AuthorizationFilterAttribute : AuthorizeAttribute { Dictionary<string, string> roles = new Dictionary<string, stri ...
public class AuthorizationFilterAttribute : AuthorizeAttribute  {    Dictionary<get='_blank'>string, string> roles = new Dictionary<string, string>() {     {"1","/Home/Index"},    {"2",""},    };    /// <summary>    /// 自定义验证逻辑 返回false时 才会执行HandleUnauthorizedRequest    /// </summary>    /// <param name="httpContext"></param>    /// <returns></returns>    protected override bool AuthorizeCore(HttpContextBase httpContext)    {      var id = Convert.ToString(httpContext.Request.QueryString["id"]);      if (id == null || !roles.ContainsKey(id))        return false;      string controller = Convert.ToString(httpContext.Request.RequestContext.RouteData.Values["controller"]);      string action = Convert.ToString(httpContext.Request.RequestContext.RouteData.Values["action"]);      return string.Compare(roles[id], string.Format("/{0}/{1}", controller, action), true) == 0;    }    public override void OnAuthorization(AuthorizationContext filterContext)    {      base.OnAuthorization(filterContext);    }    protected override void HandleUnauthorizedRequest(AuthorizationContext filterContext)    {      UrlHelper url = new UrlHelper(filterContext.HttpContext.Request.RequestContext);      filterContext.HttpContext.Response.StatusCode = (int)HttpStatusCode.Unauthorized;      filterContext.Result = new RedirectResult(url.Action("login", "home"));    }  }

原标题:mvc 自定义 AuthorizeAttribute 验证逻辑

关键词:mvc

mvc
*特别声明:以上内容来自于网络收集,著作权属原作者所有,如有侵权,请联系我们: admin#shaoqun.com (#换成@)。