C# .net core 3-b2c角色身份验证-声明注入不起作用
我正在尝试将自定义声明注入AzureB2C声明,以使基于角色的授权生效 开发堆栈是: VS2019预览版16.3-.net核心3.0预览版9-Blazor服务器端。Azure应用程序服务。B2C电子邮件+LinkedIn 看起来这应该行得通,但至少在.NETCore3中不行 我还修改了建议的解决方案,改为使用OpenIDConnect方案和事件:C# .net core 3-b2c角色身份验证-声明注入不起作用,c#,.net,azure-ad-b2c,blazor-server-side,asp.net-core-3.0,C#,.net,Azure Ad B2c,Blazor Server Side,Asp.net Core 3.0,我正在尝试将自定义声明注入AzureB2C声明,以使基于角色的授权生效 开发堆栈是: VS2019预览版16.3-.net核心3.0预览版9-Blazor服务器端。Azure应用程序服务。B2C电子邮件+LinkedIn 看起来这应该行得通,但至少在.NETCore3中不行 我还修改了建议的解决方案,改为使用OpenIDConnect方案和事件: services.PostConfigure<OpenIdConnectEvents>(AzureADB2CDefaults.OpenI
services.PostConfigure<OpenIdConnectEvents>(AzureADB2CDefaults.OpenIdScheme,
options =>
{
options.OnTokenValidated = context =>
{
// since we're using AADB2C only, the first identity is the only identity
var identity = context.Principal.Identities.First();
Trace.WriteLine("Inside OnTokenResponseReceived");
// add our test role to the identity's claims collection with the right type
var extraClaim = new Claim(identity.RoleClaimType, "Extra");
identity.AddClaim(extraClaim);
return Task.CompletedTask;
};
});
services.PostConfigure(AzureADB2CDefaults.OpenIdScheme,
选项=>
{
options.OnTokenValidated=上下文=>
{
//因为我们只使用AADB2C,所以第一个标识是唯一的标识
var identity=context.Principal.identies.First();
Trace.WriteLine(“内部OnTokenResponseReceived”);
//使用正确的类型将我们的测试角色添加到标识的声明集合中
var extraClaim=新索赔(identity.RoleClaimType,“额外”);
身份。AddClaim(extraClaim);
返回Task.CompletedTask;
};
});
似乎OnTokenValidated从未为JWTBeareEvents或OpenIdConnectEvents触发过—尽管我显然已经登录并进行了身份验证。我最终通过使用IClaimTransformation方法从
如果这种方法有任何问题、警告等,我很乐意听取任何人的意见。fyi-RTM堆栈上也有同样的问题