我有一个非常简单的问题,如果您能提供解决方案,我将不胜感激。
我有两个项目:
使用IdentityServer4对API项目进行保护,如下所示:
services.AddAuthentication("Bearer")
.AddIdentityServerAuthentication(options =>
{
options.Authority = "http://localhost:5000";
options.RequireHttpsMetadata = false;
options.ApiName = "TestAPI";
options.ApiSecret = "Password"
});
到目前为止,一切正常。
我的问题是来自API项目,我如何在IdentityServer4上进行更新操作,例如更新用户声明值?
答案 0 :(得分:0)
如果我对您的问题的理解正确无误-您想在已发出声明的IDS保护的API内更改声明。
通常-这是不可能的,也不正确。
为什么不能?
vendor\bin\phpunit packages\yourname\package-name
类及其ClaimsPrincipal
属性是只读的(它只有getter,而没有setter):
Claims
为什么不正确?
通常,声明中包含一些身份验证信息(角色,用户名,一些用户个人资料信息等)。此数据应由public virtual IEnumerable<Claim> Claims { get; }
(在您的情况下为IDS)发布,并且不应由授权取决于此身份验证数据的某人/某物更改。
PS:出于好奇-您到底想更改哪些主张,或者这只是一个普遍的问题?