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();   
            }   
        }   
    }
  • 相关阅读:
    【读书笔记】Cracking the Code Interview(第五版中文版)
    【LeetCode】贪心 greedy(共38题)
    【LeetCode】树(共94题)
    C++学习笔记 <multimap>
    C++学习笔记 <map>
    Flatten Binary Tree to Linked List <leetcode>
    Sum Root to Leaf Numbers <leetcode>
    Combinations <leetcode>
    Populating Next Right Pointers in Each Node II <leetcode>
    Pascal's Triangle II <leetcode>
  • 原文地址:https://www.cnblogs.com/answercard/p/5061279.html
Copyright © 2011-2022 走看看