zoukankan      html  css  js  c++  java
  • MVC用filter使用

    MVC用filter做权限过滤:

    1:创建filter类;类需要继承一个接口,并且重写4个方法;如下:
    namespace MvcApplication1.Code
    {
        public class paramFilter:System.Web.Mvc.ActionFilterAttribute
        {
            public override void OnActionExecuted(System.Web.Mvc.ActionExecutedContext filterContext)
            {
                base.OnActionExecuted(filterContext);
            }

            public override void OnActionExecuting(System.Web.Mvc.ActionExecutingContext filterContext)
            {
               if(filterContext.HttpContext.Request.QueryString["k"]=="go")
               {
                   string retUrl = filterContext.RouteData.GetRequiredString("controller") + "/" + filterContext.RouteData.GetRequiredString("action");
                   filterContext.HttpContext.Response.Redirect("http://" + filterContext.HttpContext.Request.Url.Host + ":" + filterContext.HttpContext.Request.Url.Port.ToString() + "/" + retUrl);
               }
            }

            public override void OnResultExecuted(System.Web.Mvc.ResultExecutedContext filterContext)
            {
                base.OnResultExecuted(filterContext);
            }

            public override void OnResultExecuting(System.Web.Mvc.ResultExecutingContext filterContext)
            {
                base.OnResultExecuting(filterContext);
            }
        }
    }

    注意:其中 filterContext对象是 从页面传过来的。
    获取页面controller值的方法是  filterContext.RouteData.GetRequiredString("controller")
    获取页面action值的方法是: filterContext.RouteData.GetRequiredString("action")
    转到其他页面的方法是:  filterContext.HttpContext.Response.Redirect()I
    ip: filterContext.HttpContext.Request.Url.Host 
    端口:filterContext.HttpContext.Request.Url.Port.ToString()


    2:在需要过滤的controller上加上一句代码即可:
            [Code.paramFilter]
            public ActionResult Index()
            {
             
                return View();
            }

  • 相关阅读:
    win7下的vxworks总结
    ubuntu 无法获得锁 /var/lib/dpkg/lock
    项目中用到了的一些批处理文件
    win7下安装 WINDRIVER.TORNADO.V2.2.FOR.ARM
    使用opencv统计视频库的总时长
    January 05th, 2018 Week 01st Friday
    January 04th, 2018 Week 01st Thursday
    January 03rd, 2018 Week 01st Wednesday
    January 02nd, 2018 Week 01st Tuesday
    January 01st, 2018 Week 01st Monday
  • 原文地址:https://www.cnblogs.com/zgaspnet/p/2610100.html
Copyright © 2011-2022 走看看