MVC3 全局验证、过滤

1、首先定义一个全局类:

using   System;
using   System.Collections.Generic;
using   System.Linq;
using   System.Text;
using   System.Web.Mvc;
using   System.Web;
using   System.Web.Script.Serialization;
using   System.Configuration;
using   System.Web.Security;
using   System.Net;
using   System.IO;
using   ModelProject;
using   System.Web.Routing;
using   System.Runtime.Remoting.Contexts;

namespace   UtilityBase
{

    [ AttributeUsage ( AttributeTargets .All, AllowMultiple =   true )]
      ///   <summary>
      ///   <para>   功|    能:o自?定义?全?局?过y滤?器    </para>
      ///   <para>   作    者?:o韩?保新?   </para>
      ///   <para>   创建日?期: 2011-7-25 9:39:13   </para>
      ///   </summary>
      public   class   GloalMvcFiters   :   ActionFilterAttribute
    {
          public   string   Message {   get ;   set ; }
          private   const   string   WebService_Root =   "WebServiceRoot" ;
          ///   <summary>
          ///   控?制?器方?法执行D之?后执行D
          ///   </summary>
          ///   <param name="filterContext"></param>
          public   override   void   OnActionExecuted( ActionExecutedContext   filterContext)
        {
              base .OnActionExecuted(filterContext);
              var   fullName = filterContext.ActionDescriptor.ControllerDescriptor.ControllerType.FullName;
           
              if   (!System.Web. HttpContext .Current.User.Identity.IsAuthenticated && !GetList().Contains(fullName))
            {
                  //System.Web.HttpContext.Current.Response.Redirect("~/Account/LogOn", true);
                filterContext.Result =   new   RedirectToRouteResult ( "Default" ,   new   RouteValueDictionary ( new   { area =   "" , controller =   "Account" , action =   "LogOn"   }));
            }
        }
          ///   <summary>
          ///   控制器方法执行之前执行
          ///   </summary>
          ///   <param name="filterContext"></param>
          public   override   void   OnActionExecuting( ActionExecutingContext   filterContext)
        {
              //var s = "</br>控制器名称:" + filterContext.ActionDescriptor.ControllerDescriptor.ControllerType.FullName + "</br>操作方?法:o" + filterContext.ActionDescriptor.ActionName;
              //filterContext.HttpContext.Response.Write(@"<br />Before Action Excute" + "\t "+ s +"\t"+ Message);
              //filterContext.HttpContext.Response.End();
              base .OnActionExecuting(filterContext);
        }
          ///   <summary>
          ///   视图加载完成后执行
          ///   </summary>
          ///   <param name="filterContext"></param>
          public   override   void   OnResultExecuted( ResultExecutedContext   filterContext)
        {
              //filterContext.HttpContext.Response.Write(@"<br />After ViewResult Excute" + "\t " + Message);
              base .OnResultExecuted(filterContext);
        }
          ///   <summary>
          ///   视图加载之前执行
          ///   </summary>
          ///   <param name="filterContext"></param>
          public   override   void   OnResultExecuting( ResultExecutingContext   filterContext)
        {
              //filterContext.HttpContext.Response.Write(@"<br />Before ViewResult Excute" + "\t " + Message);
              base .OnResultExecuting(filterContext);
        }
          private   List < string > GetList()
        {
              List < string > list =   new   List < string >();
            list.Add( "WebUI.Controllers.AccountController" );
            list.Add( "WebUI.Controllers.ErrorController" );
              return   list;
        }
    }
}

2、Global.asax中注册

     protected void Application_Start()
        {
            AreaRegistration.RegisterAllAreas();
            GlobalFilters.Filters.Add(new UtilityBase.GloalMvcFiters() { Message = "Gloable" });
            RegisterGlobalFilters(GlobalFilters.Filters);
            RegisterRoutes(RouteTable.Routes);
        }
  
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值