zoukankan      html  css  js  c++  java
  • AuthorizeAttribute示例

    using System;   
    using System.Collections.Generic;   
    using System.Linq;   
    using System.Web;   
    using System.Web.Mvc;   
    namespace AuthTest.Models   
    {   
        public class MyAuthAttribute : AuthorizeAttribute   
        {   
            // 只需重载此方法,模拟自定义的角色授权机制,推荐通过Idetity获取用户信息, 当然也可以通过Session获取,如果通过Session获取需要在验证的时候吧用户信息写入Session   
            protected override bool AuthorizeCore(HttpContextBase httpContext)   
            {   
                string currentRole = GetRole(httpContext.User.Identity.Name);   
                //string currentRole = GetRole(Session["user"].ToString()); 通过Session获取
                if(Roles.Contains(currentRole ) )   
                    return true;   
                return base.AuthorizeCore(httpContext);   
            }   
       
            // 返回用户对应的角色, 在实际中, 可以从SQL数据库中读取用户的角色信息   
            private string GetRole(string name)   
            {   
                switch(name)   
                {   
                    case "aaa":  return "User";   
                    case "bbb": return "Admin";   
                    case "ccc": return "God";   
                    default: return "Fool";   
                }   
            }   
        }   
       
    }
    using System;   
    using System.Collections.Generic;   
    using System.Linq;   
    using System.Web;   
    using System.Web.Mvc;   
    using System.Web.Security;   
    using AuthTest.Models;   
    namespace AuthTest.Controllers   
    {   
        [HandleError]   
        public class HomeController : Controller   
        {   
            public ActionResult Index()   
            {   
                ViewData["Message"] = "欢迎使用 ASP.NET MVC!";   
                // 模拟用户成功登录   
                FormsAuthentication.SetAuthCookie("aaa", false);  
                //Session["user"]="aaa" 把用户信息写入Session 
                return View();   
            }   
       
            // 验证我们自定义的AuthorizeAttribute是否起作用,    
             // 此Action只能由角色为“God”的用户访问   
            [MyAuth(Roles="God")]   
            public ActionResult About()   
            {   
                return View();   
            }   
        }   
    }
  • 相关阅读:
    firewalld添加/删除服务service,端口port
    centos7下配置ftp服务器
    CentOS安装vsftpd FTP后修改默认21端口方法
    虚拟机,安装tools时出现“安装程序无法继续解决
    Linux下mysql数据库备份
    测试linux下磁盘的读写速率
    redis状态详解
    office2010安装不了提示已经安装32位的了怎么办
    nginx安装部署
    结构体赋值
  • 原文地址:https://www.cnblogs.com/answercard/p/5061279.html
Copyright © 2011-2022 走看看