码迷,mamicode.com
首页 > Web开发 > 详细

mvc权限验证--AuthorizeAttribute

时间:2015-03-20 12:22:29      阅读:278      评论:0      收藏:0      [点我收藏+]

标签:

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

系统有自带的权限[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]就行了。

mvc权限验证--AuthorizeAttribute

标签:

原文地址:http://www.cnblogs.com/dangzhensheng/p/4353080.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!