.net core 客户端如何在IdentityServer4中获取有关用户的资源声明
我的客户从.net core 客户端如何在IdentityServer4中获取有关用户的资源声明,.net-core,identityserver4,.net Core,Identityserver4,我的客户从IdentityServer4获取令牌,并将其交给我的API以获得服务, 在我想要获得用户声明(STS会自动将其放在用户声明上)之前,一切都是真的,当我调用user.Identity.Name时,它返回null。 根据API启动时我应该定义范围,因此我定义: app.UseIdentityServerAuthentication(new IdentityServerAuthenticationOptions { Authority = "ht
IdentityServer4
获取令牌,并将其交给我的API
以获得服务,
在我想要获得用户声明(STS会自动将其放在用户声明上)之前,一切都是真的,当我调用user.Identity.Name
时,它返回null。
根据API启动时我应该定义范围,因此我定义:
app.UseIdentityServerAuthentication(new IdentityServerAuthenticationOptions
{
Authority = "http://localhost:33934",
RequireHttpsMetadata = false,
ApiName = "api1",
AllowedScopes = { "profile", "email", "api1" },
});
一切正常,我的用户可以从IdentityServer获取令牌,当我将其传递给API时,授权将成功完成,但user.Identity.Name
返回null!
有什么问题吗?您可以使用
<dl>
@foreach (var claim in User.Claims)
{
<dt>@claim.Type</dt>
<dd>@claim.Value</dd>
}
</dl>
@foreach(User.Claims中的var声明)
{
@索赔.类型
@索赔价值
}
在客户端应用程序上试试这个,你就会知道你是否名副其实 您可以使用
<dl>
@foreach (var claim in User.Claims)
{
<dt>@claim.Type</dt>
<dd>@claim.Value</dd>
}
</dl>
@foreach(User.Claims中的var声明)
{
@索赔.类型
@索赔价值
}
在客户端应用程序上试试这个,你就会知道你是否名副其实