您的位置:首页 > 其它

mvc 过滤器验证身份 排除指定不验证action

2017-06-29 11:58 260 查看
using System;  
using System.Web.Mvc;  
namespace Test.Web
    {
        /// <summary>  
        /// 身份证验证过滤器  
        /// </summary>  
        public class Check : ActionFilterAttribute
        {

            // OnActionExecuted 在执行操作方法后由 ASP.NET MVC 框架调用。  
            // OnActionExecuting 在执行操作方法之前由 ASP.NET MVC 框架调用。  
            // OnResultExecuted 在执行操作结果后由 ASP.NET MVC 框架调用。  
            // OnResultExecuting 在执行操作结果之前由 ASP.NET MVC 框架调用。</span>  
            public override void OnActionExecuting(ActionExecutingContext filterContext)
            {
                //先判断需不需过滤器  
                object[] attrs = filterContext.ActionDescriptor.GetCustomAttributes(typeof(NoCheck), true);
                if (attrs.Length == 0)
                {
                    //这里是业务逻辑  
                    if (true)
                    { //没有通过权限  
                      //直接返回文本  
                        filterContext.Result = new ContentResult() { Content = "无权限访问", ContentEncoding = System.Text.Encoding.UTF8 };

                        // filterContext.Result = new HttpUnauthorizedResult("kaixin/index");  
                        //filterContext.HttpContext.Response.Redirect("kaixin/index");  
                        //filterContext.Result = new RedirectResult("http://www.baidu.com");//也可以跳到别的站点  
                        // filterContext.Result = new RedirectToRouteResult("Default", new System.Web.Routing.RouteValueDictionary(new { controller = "kaixin", action= "index" }));  
                    }
                }

            }
        }
        //不需要验证的  
        public class NoCheck : Attribute
        {
            public NoCheck()
            {
            }
        }
    }
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  mvc 过滤器