C# 如何使用OWIN安全中间件在应用程序中设置NameClaimType

C# 如何使用OWIN安全中间件在应用程序中设置NameClaimType,c#,owin,C#,Owin,我已经创建了一个OWIN web应用程序,它使用OpenId Connect通过Microsoft.OWIN.Security.OpenId Connect进行身份验证 身份验证工作时,我发现创建的ClaimsIdentity.Name成员为null。索赔实体似乎希望在索赔中提供名称: 但是,Thinktecture IdentityServer v3提供的名称如下: 名字 但不清楚我是如何与奥文合作的 使用OWIN时,如何配置映射到ClaimsEntity.Name的声明?通过代码挖掘,我发

我已经创建了一个OWIN web应用程序,它使用OpenId Connect通过
Microsoft.OWIN.Security.OpenId Connect
进行身份验证

身份验证工作时,我发现创建的ClaimsIdentity.Name成员为null。索赔实体似乎希望在索赔中提供名称:

但是,Thinktecture IdentityServer v3提供的名称如下:

名字

但不清楚我是如何与奥文合作的


使用OWIN时,如何配置映射到ClaimsEntity.Name的声明?

通过代码挖掘,我发现这可以使用
NameClaimType
NameClaimTypeRetriever
TokenValidationParameters
对象上进行配置(如果声明类型不固定)

配置中间件时,
TokenValidationParameters
位于options对象上。以下配置更改在所述情况下起作用

app.UseOpenIdConnectAuthentication(
新的OpenIdConnectAuthenticationOptions
{
,
令牌验证参数=
{
NameClaimType=Thinktecture.IdentityServer.Core.Constants.ClaimTypes.Name
}
} );
Thinktecture.IdentityServer.Core.Constants.ClaimTypes.Name
Name
。可以提供不同的值以指示应使用不同的索赔