g.p*_*dou 4 openid-connect azure-ad-b2c asp.net-core
我在 ASP.NET Core 3 应用程序中使用 Azure B2C,它运行良好。我在启动中使用以下代码:
services.AddAuthentication(AzureADB2CDefaults.AuthenticationScheme)
.AddAzureADB2C(options => Configuration.Bind("AzureAdB2C", options));
Run Code Online (Sandbox Code Playgroud)
我想处理标准的 TokenValidated OpenIdConnect 事件,换句话说,我需要一个配置来设置我的事件处理程序。
检查源代码,我看到了该类AzureAdB2COpenIDConnectEventHandlers.cs及其用法,AzureADB2COpenIdConnectOptionsConfiguration但不幸的是,两个类都声明为internal
题
我所需要的只是让我的 TokenValidated 处理程序生效,保留所有现成的基于 OpenIdConnect 的 AD B2C 功能,该功能目前正在运行。
伪代码,类似这样:
options.Events = new OpenIdConnectEvents()
{
// ...
OnTokenValidated = MyTokenValidatedHandler
};
Run Code Online (Sandbox Code Playgroud)
如何以简单的方式完成此操作?
我通过在 github 中搜索 ["Events.OnTokenValidated" AzureAdB2C] 找到了我的答案,并为我的案例组装了以下内容:
// My existing code in Startup:
services.AddAuthentication(AzureADB2CDefaults.AuthenticationScheme)
.AddAzureADB2C(options => Configuration.Bind("AzureAdB2C", options));
// My added code to handle the OnTokenValidated event
services.Configure<OpenIdConnectOptions>(AzureADB2CDefaults.OpenIdScheme, options =>
{
var onTokenValidated = options.Events.OnTokenValidated;
options.Events.OnTokenValidated = context =>
{
onTokenValidated?.Invoke(context);
// My custom handler goes below:
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
789 次 |
| 最近记录: |