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

    using System;   
    using System.Collections.Generic;
    using System.Linq;
    using System.Web;
    using System.Web.Mvc;
    namespace AuthTest.Models
    {
    public class MyAuthAttribute : AuthorizeAttribute
    {
    // 只需重载此方法,模拟自定义的角色授权机制
    protected override bool AuthorizeCore(HttpContextBase httpContext)
    {
    string currentRole = GetRole(httpContext.User.Identity.Name);
    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);
    return View();
    }

    // 验证我们自定义的AuthorizeAttribute是否起作用,
    // 此Action只能由角色为“God”的用户访问
    [MyAuth(Roles="God")]
    public ActionResult About()
    {
    return View();
    }
    }
    }



  • 相关阅读:
    从输入url到浏览器加载过程(回答此问题的一个主干脉络)
    如何减少回流,重绘
    mac常用启动各种服务的命令
    分布式笔记搬迁
    JAVA基础
    EasyExcel引入
    mac 好用软件地址存储
    2018/4/11
    2018/04/04
    jdk各版本
  • 原文地址:https://www.cnblogs.com/yannis/p/2281762.html
Copyright © 2011-2022 走看看