zoukankan      html  css  js  c++  java
  • AuthorizeAttribute 之 AllowAnonymous & ActionAuthorize

        [ActionAuthorize]
        public class HomeController : Controller
        {
            private readonly ILogger<HomeController> _logger;
    
            public HomeController(ILogger<HomeController> logger)
            {
                _logger = logger;
            }
    
            public IActionResult Index()
            {
                return View();
            }
    
            public IActionResult Index2(long userid)
            {
                return View();
            }
    
            public JsonResult GetCall()
            {
                return new JsonResult("test");
            }
    
            [AllowAnonymous]
            public JsonResult GetCallNoAuth()
            {
                return new JsonResult("no auth");
            }
    
            public IActionResult AuthFail()
            {
                return View();
            }
    
            public IActionResult AccessFail()
            {
                return View();
            }
    
            public IActionResult Privacy()
            {
                return View();
            }
    
            [ResponseCache(Duration = 0, Location = ResponseCacheLocation.None, NoStore = true)]
            public IActionResult Error()
            {
                return View(new ErrorViewModel { RequestId = Activity.Current?.Id ?? HttpContext.TraceIdentifier });
            }
        }
    

      

         public class ActionAuthorizeAttribute : AuthorizeAttribute, IAuthorizationFilter
        {
            private long _targetUserId = 1;
            private string _notAllowedAction =  "deny" ;
            public void OnAuthorization(AuthorizationFilterContext filterContext)
            {
                var query = filterContext.HttpContext.Request.Query;
                if (!query.ContainsKey("userid") || query["userid"].ToString() != _targetUserId.ToString())
                {
                    filterContext.Result = new RedirectToActionResult("home", "AuthFail", null);
                    return;
                }
                var routes = filterContext.HttpContext.Request.RouteValues;
                if (routes.ContainsKey(_notAllowedAction))
                {
                    filterContext.Result = new RedirectToActionResult("home", "AccessFail", null);
                    return;
                }
                return;
    
            }
        }
    

      

  • 相关阅读:
    ExtAspNet应用技巧(二)
    JavaScript继承详解(六)
    ExtAspNet新版本发布,集成Extjs3.0,兼容IE浏览器
    ExtAspNet发展规划
    把Doc文档转换成rtf格式 (转载)
    提高Sql Server性能的10个技巧
    winform中树和数据库关联操作的例子(C#)
    为什么C#没有提供“缺省参数”
    让UML消失一段时间
    把RichTextBox中的文本保存到Sql Server中
  • 原文地址:https://www.cnblogs.com/panpanwelcome/p/14864063.html
Copyright © 2011-2022 走看看