• 自定义AuthorizeFilter


    using Microsoft.AspNetCore.Authorization;
    using Microsoft.AspNetCore.Authorization.Infrastructure;
    using Microsoft.AspNetCore.Mvc;
    using Microsoft.AspNetCore.Mvc.Authorization;
    using Microsoft.AspNetCore.Mvc.Filters;
    using System;
    using System.Collections.Generic;
    using System.Linq;
    using System.Threading.Tasks;
    using WeTax.CommonLibrary.Models.Enum;
    
    namespace MerchantsApi.Filters
    {
        public class MerchantAuthorizeAttribute : AuthorizeFilter
        {
            private static AuthorizationPolicy _policy_ = new AuthorizationPolicy(new[] { new DenyAnonymousAuthorizationRequirement() }, new string[] { });
    
            public MerchantAuthorizeAttribute() : base(_policy_)
            { }
    
            public override async Task OnAuthorizationAsync(AuthorizationFilterContext context)
            {
                if (string.IsNullOrEmpty(context.HttpContext.User.Claims.FirstOrDefault(x => x.Type == "userid")?.Value))
                {
                    context.Result = new JsonResult(new WeTax.CommonLibrary.Models.WebApiResult(ApiResultCode.Fail, "请登录"));
                }
                await base.OnAuthorizationAsync(context);
            }
        }
    }
                services.AddMvc(options =>
                {
                    options.Filters.Add<MerchantAuthorizeAttribute>();
                    //options.Filters.Add<AuthExceptionFilter>();
                }).SetCompatibilityVersion(CompatibilityVersion.Version_2_1);
  • 相关阅读:
    ubuntu 12.04 install flash for firefox
    ubuntu 12.04 修改 grub 启动参数
    ubuntu 12.04 英文系统怎么调出 ibus输入法
    Ubuntu 12.04 临时禁用和启动面板
    git部署
    php 递归删除文件夹
    一‘php文件系统
    xml的解构与组装
    memcached的部署
    1,秒杀系统的设计
  • 原文地址:https://www.cnblogs.com/chenyishi/p/10984491.html
Copyright © 2020-2023  润新知