zoukankan      html  css  js  c++  java
  • Set authorization for a whole area

    public class FilterConfig
    {
        public static void RegisterGlobalFilters(GlobalFilterCollection filters)
        {
            filters.Add(new CustomAuthorizeAttribute());
            filters.Add(new HandleErrorAttribute());
        }
    }
    
    public class CustomAuthorizeAttribute : AuthorizeAttribute
    {
        protected override bool AuthorizeCore(HttpContextBase httpContext)
        {
            var routeData = httpContext.Request.RequestContext.RouteData;
            var controller = routeData.GetRequiredString("controller");
            var action = routeData.GetRequiredString("action");
            var area = routeData.DataTokens["area"];
            var user = httpContext.User;
            if (area != null && area.ToString() == "Customer")
            {
                if (!user.Identity.IsAuthenticated)
                    return false;
            }
            else if (area != null && area.ToString() == "Admin")
            {
                if (!user.Identity.IsAuthenticated)
                    return false;
                if (!user.IsInRole("Admin"))
                    return false;
            }
            return true;
        }
    }
  • 相关阅读:
    网络基础
    SQL注入
    OpenID说明
    Linux网络编程
    Linux的僵尸进程产生原因及解决方法
    计算机系统的存储层次
    Java实现SSO
    JD(转载)
    Switch的表达式的要求
    leetcode(23. Merge k Sorted Lists)
  • 原文地址:https://www.cnblogs.com/Ken-Cai/p/5193388.html
Copyright © 2011-2022 走看看