mvc 自定义 AuthorizeAttribute 验证逻辑
2015-10-30 17:38
211 查看
public class AuthorizationFilterAttribute : AuthorizeAttribute { Dictionary<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")); } }
public static void RegisterGlobalFilters(GlobalFilterCollection filters) { filters.Add(new AuthorizationFilterAttribute()); filters.Add(new HandleErrorAttribute()); }
filterContext.Result只要不为空Action就会终止。直接响应请求。
相关文章推荐
- 解决eclipse插件svn不显示svn信息和显示的信息为数字的问题
- Cocos2dxActivity cannot be resolved to a type解决方案
- Android Studio如何在项目中使用jni以及OpenCV库
- elasticsearch环境搭建与使用
- Android中EditText中的InputType类型含义与如何定义
- 《JavaScript高级编程》读书笔记——函数
- web第一节课 sql 数据库连接 查询
- javaweb文件上传下载
- ThreadGroup线程组使用
- Android Media显示的层次
- QGIS使用栅格图层
- android性能优化总结
- sql语句添加主键
- jQuery ajax表单提交实现局部刷新
- java的几种对象(PO,VO,DAO,BO,POJO)解释
- MAC中设置android adb环境变量
- 程序员学英语--英语杂记
- 使用 tungsten-replicator4 实现 mysql -- > monogo 数据同步
- artdialog插件open用法备忘
- 解决“只能通过Chrome网上应用商店安装该程序”的方法