Asp.netcoreMicrosoftOIDC库在接收到OnAuthorizedCode事件时触发两次
创始人
2024-09-17 23:00:48
0

可以尝试使用以下代码示例解决此问题:

在Startup.cs文件中,添加以下代码:

services.AddAuthentication(options =>
{
   // ...
}).AddOpenIdConnect("oidc", options =>
{
   // ...
   options.Events.OnAuthorizationCodeReceived = async context =>
   {
      // 接收到授权代码时只执行一次
      if (context.Properties.Items.TryGetValue(OpenIdConnectDefaults.UserstatePropertiesKey, out var userstate) && userstate == "unique_value")
      {
         context.HandleCodeRedemption();
         await ((IMyService)context.HttpContext.RequestServices.GetService(typeof(IMyService))).MyMethod(context);
      }
      else
      {
         // 在context.Properties.Items中添加唯一值以标识此次执行
         context.Properties.Items[OpenIdConnectDefaults.UserstatePropertiesKey] = "unique_value";
      }
   };
});

在上面的代码中,我们创建了一个唯一值"userstate"并将其添加到"context.Properties.Items"字典中,以标识此次执行。如果在"context.Properties.Items"字典中找到了"userstate"且值为"unique_value",则不再继续执行。否则,我们执行MyMethod()方法并将"context.Properties.Items"字典中的"userstate"值设置为"unique_value"以标识此次执行。

这样做可以确保"OnAuthorizationCodeReceived"事件仅在接收到授权代码时执行一次,并解决了事件被触发两次的问题。

相关内容

热门资讯

玩家实测“aapoker怎么设... aapoker怎么设置抽水开挂教程视频分享装挂详细步骤在当今的网络游戏中,aapoker怎么设置抽水...
教学盘点“闲来辅助最新版下载”... 教学盘点“闲来辅助最新版下载”开挂(透视)辅助脚本新2026教程(有挂方法) >>您好:软件加薇13...
透视软件“川娱竞技辅助”开挂(... 透视软件“川娱竞技辅助”开挂(透视)辅助脚本细节揭秘(有挂辅助);亲,川娱竞技辅助这款游戏原来确实可...
透视系统“雀友圈斗地主辅助器”... 大家好,今天小编来为大家解答雀友圈斗地主辅助器这个问题咨询软件客服可以免费测试直接加微信(13670...
每日必看推荐“wepoker透... 每日必看推荐“wepoker透视底牌”开挂(透视)辅助软件大神讲解(有挂方式) >>您好:软件加薇1...
一分钟了解“xpoker辅助器... 一分钟了解“xpoker辅助器”开挂(透视)辅助脚本详细教程(存在有挂)1、下载安装好xpoker辅...
实操分享“衢州都莱有没有挂”开... 实操分享“衢州都莱有没有挂”开挂(透视)辅助下载解说技巧(有挂功能)衢州都莱有没有挂ai黑科技系统规...
如何分辨真伪“广东雀神胜率修改... 如何分辨真伪“广东雀神胜率修改”开挂(透视)辅助下载爆料教程(有挂实锤);无需打开直接搜索打开薇:1...
透视总结“h5大厅反杀”开挂(... 透视总结“h5大厅反杀”开挂(透视)辅助工具安装教程(新版有挂);无需打开直接搜索微信(136704...
安装程序教程“四川皮皮辅助”开... 安装程序教程“四川皮皮辅助”开挂(透视)辅助神器曝光教程(有挂透视)【无需打开直接搜索加薇13670...