zoukankan      html  css  js  c++  java
  • mvc权限验证--AuthorizeAttribute

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

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

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

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

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

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

    3、将Authorize应用到全局范围类,加入全局过滤器集合RegisterGlobalFilters方法,App_StartFilterConfig.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]就行了。

  • 相关阅读:
    【java基础学习一】int[]、Integer[]、String[] 排序( 正序、倒叙)、去重
    【转】jqGrid 各种参数 详解
    CSS 中文字体的英文名称 (simhei, simsun) 宋体 微软雅黑
    Web应用程序项目XX已配置为使用IIS
    zsh安装及配置
    vscode安装及配置
    matlab2018a安装及配置
    teminator安装及配置
    clion安装及配置
    pcl之octree的使用
  • 原文地址:https://www.cnblogs.com/dangzhensheng/p/4353080.html
Copyright © 2011-2022 走看看