我创建了一个使用OpenId Connect进行身份验证的OWIN Web应用程序Microsoft.Owin.Security.OpenIdConnect.
身份验证有效时,我发现创建的ClaimsIdentity.Name成员为null.看来,ClaimsIdentity期望在索赔中提供该名称:
但是,Thinktecture IdentityServer v3提供的名称仅为:
名称
我发现这可以通过NameClaimType旧的ASP.Net应用程序进行配置,但我不知道如何使用OWIN进行此操作.
如何在使用OWIN时配置哪个声明映射到ClaimsIdentity.Name?
vos*_*d01 17
通过代码挖掘我发现可以TokenValidationParameters使用NameClaimType或在NameClaimTypeRetriever(如果声明类型不固定)对象上配置.
TokenValidationParameters配置中间件时,它依赖于选项对象.配置的以下更改适用于所述情况,
app.UseOpenIdConnectAuthentication(
new OpenIdConnectAuthenticationOptions
{
<existing configuration snipped>,
TokenValidationParameters =
{
NameClaimType = Thinktecture.IdentityServer.Core.Constants.ClaimTypes.Name
}
} );
Run Code Online (Sandbox Code Playgroud)
Thinktecture.IdentityServer.Core.Constants.ClaimTypes.Name是name.可以提供不同的值以指示应该使用不同的声明.
| 归档时间: |
|
| 查看次数: |
2296 次 |
| 最近记录: |