• 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();
    }
    }
    }



  • 相关阅读:
    斜率dp cdq 分治
    POJ2449 (k短路)
    BZOJ1576 (最短路+并查集)
    SWUST0249 (凸包面积)
    道路修建 (网络流)
    HDU3930 (原根)
    ZOJ2006 (后缀自动机)
    Codechef2015 May
    后缀自动机
    Digit (数位DP)
  • 原文地址:https://www.cnblogs.com/yannis/p/2281762.html
Copyright © 2020-2023  润新知