本文实例讲述了ASP。NET MVC使用ActionFilterAttribute实现权限限制的方法。分享给大家供大家参考,具体如下:ActionFilterAttribute是Action过滤类,该属于会在执行一个action之前先执行。而ActionFilterAttribute是 MVC的一个专门处理action过滤的类。
基于这个原理 我们做一个权限限制例如:如何访问 HomeController 里的test actionusing System;using System。Collections。Generic;using System。Linq;using System。
Web;using System。Web。Mvc;using MvcTest。Models;namespace MvcTest。Controllers{ public class HomeController : Controller { // // GET: /Home/ public ActionResult Index() { return View(); } [AuthorizeFilter] public ActionResult test() { return Content(“有权访问”); } }}建立AuthorizeFilterAttribute。
cs 内容如下using System;using System。Collections。Generic;using System。Linq;using System。Web;using System。Web。Mvc;namespace MvcTest。
Models{ /// <summary> /// 权限拦截 /// </summary> [AttributeUsage(AttributeTargets。Class | AttributeTargets。Method, AllowMultiple = false)] public class AuthorizeFilterAttribute : ActionFilterAttribute { filterContextInfo fcinfo; // OnActionExecuted 在执行操作方法后由 ASP。
NET MVC 框架调用。 // OnActionExecuting 在执行操作方法之前由 ASP。NET MVC 框架调用。 // OnResultExecuted 在执行操作结果后由 ASP。NET MVC 框架调用。 // OnResultExecuting 在执行操作结果之前由 ASP。
NET MVC 框架调用。 /// <summary> /// 在执行操作方法之前由 ASP。NET MVC 框架调用。 /// </summary> /// <param name=”filterContext”></param> public override void OnActionExecuting(ActionExecutingContext filterContext) { fcinfo = new filterContextInfo(filterContext); //fcinfo。
actionName;//获取域名 //fcinfo。controllerName;获取 controllerName 名称 bool isstate = true; //islogin = false; if (isstate)//如果满足 { //逻辑代码 // filterContext。
Result = new HttpUnauthorizedResult();//直接URL输入的页面地址跳转到登陆页 // filterContext。Result = new RedirectResult(“http://www。baidu。
com”);//也可以跳到别的站点 //filterContext。Result = new RedirectToRouteResult(new System。Web。Routing。RouteValueDictionary(new { Controller = “product”, action = “Default” })); } else { filterContext。
Result = new ContentResult { Content = @”抱歉,你不具有当前操作的权限!” };// 直接返回 return Content(“抱歉,你不具有当前操作的权限!”) } } /// <summary> /// 在执行操作方法后由 ASP。
NET MVC 框架调用。 /// </summary> /// <param name=”filterContext”></param> public override void OnActionExecuted(ActionExecutedContext filterContext) { base。
OnActionExecuted(filterContext); } /// <summary> /// OnResultExecuted 在执行操作结果后由 ASP。NET MVC 框架调用。 /// </summary> /// <param name=”filterContext”></param> public override void OnResultExecuted(ResultExecutedContext filterContext) { base。
OnResultExecuted(filterContext); } /// <summary> /// OnResultExecuting 在执行操作结果之前由 ASP。NET MVC 框架调用。 /// </summary> /// <param name=”filterContext”></param> public override void OnResultExecuting(ResultExecutingContext filterContext) { base。
OnResultExecuting(filterContext); } } public class filterContextInfo { public filterContextInfo(ActionExecutingContext filterContext) { #region 获取链接中的字符 // 获取域名 domainName = filterContext。
HttpContext。Request。Url。Authority; //获取模块名称 // module = filterContext。HttpContext。Request。Url。Segments[1]。Replace(‘/’, ‘ ‘)。
Trim(); //获取 controllerName 名称 controllerName = filterContext。RouteData。Values[“controller”]。ToString(); //获取ACTION 名称 actionName = filterContext。
RouteData。Values[“action”]。
ToString(); #endregion } /// <summary> /// 获取域名 /// </summary> public string domainName { get; set; } /// <summary> /// 获取模块名称 /// </summary> public string module { get; set; } /// <summary> /// 获取 controllerName 名称 /// </summary> public string controllerName { get; set; } /// <summary> /// 获取ACTION 名称 /// </summary> public string actionName { get; set; } }}完整实例代码点击此处本站下载。
1.文章《ASP.NET MVC使用ActionFilterAttribute实现权限限制的方法(附demo源码下载)》援引自互联网,为网友投稿收集整理,仅供学习和研究使用,内容仅代表作者本人观点,与本网站无关,侵删请点击页脚联系方式。
2.文章《ASP.NET MVC使用ActionFilterAttribute实现权限限制的方法(附demo源码下载)》仅供读者参考,本网站未对该内容进行证实,对其原创性、真实性、完整性、及时性不作任何保证。
相关推荐
- . 现代买票为什么带上携程保险
- . 潮阳怎么去广州南站
- . 湖南马拉河怎么样
- . 烧纸为什么到三岔路口
- . 百色为什么这么热
- . 神州租车怎么样
- . 芜湖方特哪个适合儿童
- . 护肤品保养液是什么类目
- . 早晚的护肤保养有哪些项目
- . 女孩护肤品怎么保养的最好