.net core IdentityServer4从API项目更新索赔值
我有一个非常简单的问题,如果您能提供解决方案,我将不胜感激 我有两个项目:.net core IdentityServer4从API项目更新索赔值,.net-core,identityserver4,.net Core,Identityserver4,我有一个非常简单的问题,如果您能提供解决方案,我将不胜感激 我有两个项目: IdentityServer4项目 API项目 API项目正在使用IdentityServer 4进行保护,如下所示: services.AddAuthentication("Bearer") .AddIdentityServerAuthentication(options => { options.Authority = "http://localhost:5000";
- IdentityServer4项目李>
- API项目
services.AddAuthentication("Bearer")
.AddIdentityServerAuthentication(options =>
{
options.Authority = "http://localhost:5000";
options.RequireHttpsMetadata = false;
options.ApiName = "TestAPI";
options.ApiSecret = "Password"
});
到目前为止,一切正常
我的问题来自API项目,如何在IdentityServer 4上执行更新操作,如更新用户声明值?如果我正确理解您的问题-您希望在发出声明的受ID保护的API内更改声明 一般来说,这是不可能的,也是不正确的 为什么不可能?
ClaimsPrincipal
类及其Claims
属性是只读的(它只有getter,但没有setter):
公共虚拟IEnumerable声明{get;}
为什么不对?
通常声明包含一些身份验证信息(角色、用户名、一些用户配置文件信息等)。此数据应该由身份验证提供商发布(在您的情况下是IDS),并且不应该由授权依赖于此身份验证数据的某人/某物更改
PS:出于好奇-您到底想更改哪些声明,或者这只是一个一般性问题?能否在IdentityServer4项目的启动类中显示您的ConfigureServices方法?所有用户、声明、资源和客户端都在该方法中配置。
public virtual IEnumerable<Claim> Claims { get; }