你的位置:首页 > ASP.net教程

[ASP.net教程]mvc权限验证


在做后台管理时用户登录后就需要验证哪些权限了,没有登录的就直接退出到登录页面。

系统有自带的权限[Authorize],可用于几个地方:

1、将属性[Authorize]置于相关的action上方,验证当前

[Authorize] public ActionResult Index() {   return View(); }

2、将属性[Authorize]置于控制器上方

[Authorize]public class MainController : Controller{  //}

3、将Authorize应用到全局范围类,加入全局过滤器集合RegisterGlobalFilters方法,\App_Start\FilterConfig.cs:

public static void RegisterGlobalFilters(GlobalFilterCollection filters){   filters.Add(new AuthorizeAttribute()); //新加行   filters.Add(new HandleErrorAttribute());}

PS:如果有些控制器的action方法不需要验证,则在action上添加属性[AllowAnonymous]

但系统自带的不一定我们适用,这就要我们自定义了,规则我们可以自己写

新建AdminAuthorizeAttribute类,继承AuthorizeAttribute类,重写AuthorizeCore、HandleUnauthorizedRequest方法

     protected override bool AuthorizeCore(HttpContextBase httpContext)    {      if (httpContext.Session["username"] != null)      {        return true;      }      return false;    }    protected override void HandleUnauthorizedRequest(AuthorizationContext filterContext)    {      filterContext.HttpContext.Response.Redirect("/Admin/Account/Login");    }

用法同上,把[Authorize]改为[AdminAuthorizeAttribute]就行了。