OpenIdDict 授权

OpenIddict 加入自定义 handler

 options.AddEventHandler < OpenIddict.Server.OpenIddictServerEvents.HandleIntrospectionRequest > (notification =>
 {
     var context = notification.Context;
     if(context.Claims.ContainsKey(OpenIdConnectConstants.Claims.Role))
     {
         context.Claims[OpenIdConnectConstants.Claims.Role] = new OpenIdConnectParameter(new []
         {
             "admin", "user"
         }); //Exception in internal processing
         /*
          result: 
             Microsoft.AspNetCore.Diagnostics.DeveloperExceptionPageMiddleware: Error: An unhandled exception has occurred while executing the request.

             System.Threading.Tasks.TaskCanceledException: A task was canceled.
                 at AspNet.Security.OpenIdConnect.Server.OpenIdConnectServerHandler.SendPayloadAsync(OpenIdConnectResponse response)
                 at AspNet.Security.OpenIdConnect.Server.OpenIdConnectServerHandler.SendIntrospectionResponseAsync(OpenIdConnectResponse response)
                 at AspNet.Security.OpenIdConnect.Server.OpenIdConnectServerHandler.InvokeIntrospectionEndpointAsync()
                 at AspNet.Security.OpenIdConnect.Server.OpenIdConnectServerHandler.HandleRequestAsync()
                 at Microsoft.AspNetCore.Authentication.AuthenticationMiddleware.Invoke(HttpContext context)
                 at Microsoft.AspNetCore.Diagnostics.DeveloperExceptionPageMiddleware.Invoke(HttpContext context)
          */
         //context.Claims.Add(OpenIdConnectConstants.Claims.Role, "user"); //Exception:  System.ArgumentException: "An item with the same key has already been added. Key: role"
     }
     return Task.FromResult(OpenIddict.Server.OpenIddictServerEventState.Unhandled);
 });
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值