Joe*_*Joe 10 .net claims .net-core
从brockallen的文章中,他说"AuthenticateAsync()可能会被多次调用",这可能是为什么TransformAsync()被多次调用的原因(在我的应用程序中两次).
我没有得到的是:
有人知道为什么ClaimsIdentity会这样吗?
更新的问题:
我没有得到的是:
代码1
class ClaimsTransformer : IClaimsTransformation
{
public Task<ClaimsPrincipal> TransformAsync(ClaimsPrincipal principal)
{
var id = ((ClaimsIdentity)principal.Identity);
var ci = new ClaimsIdentity(id.Claims, id.AuthenticationType, id.NameClaimType, id.RoleClaimType);
ci.AddClaim(new Claim("now", DateTime.Now.ToString()));
ci.AddClaim(new Claim("boom", "hehehe"));
var cp = new ClaimsPrincipal(ci);
return Task.FromResult(cp);
}
}
Run Code Online (Sandbox Code Playgroud)
图1-A
图1-B
代码2
class ClaimsTransformer : IClaimsTransformation
{
public Task<ClaimsPrincipal> TransformAsync(ClaimsPrincipal principal)
{
var ci = new ClaimsIdentity();
ci.AddClaim(new Claim("now", DateTime.Now.ToString()));
ci.AddClaim(new Claim("boom", "hehehe"));
var cp = new ClaimsPrincipal(ci);
return Task.FromResult(cp);
}
}
Run Code Online (Sandbox Code Playgroud)
图2-A
图2-B
小智 3
回答问题 1:
我意识到会发生重复,因为我正在复制主体中的值并返回添加的自定义声明。
回答问题 2:
我意识到复制永远不会发生,因为我总是创建一个新的 ClaimsIdentity 并且从不复制主体中的值。
归档时间: |
|
查看次数: |
417 次 |
最近记录: |