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 过滤器验证身份 排除指定不验证action
最新推荐文章于 2021-09-05 23:01:29 发布