c# – IClaimsTransformer有什么用?
作者:互联网
在ASP.Net核心中,您可以使用IClaimsTransformer的实现.
你这样注册:
app.UseClaimsTransformation(o => o.Transformer = new MyClaimsTransformer());
履行
public class MyClaimsTransformer : IClaimsTransformer
{
public Task<ClaimsPrincipal> TransformAsync(ClaimsTransformationContext context)
{
var identity = context.Principal.Identity as ClaimsIdentity;
foreach (var claim in ci.Claims)
{
// you cannot modify claim.Type or claim.Value here
}
}
}
但ClaimIdentity.Claims是只读属性. Claim.Type,Claim.Value也是只读属性.
这意味着在IClaimsTransformer的实现中,您只能添加新的声明.您无法删除或修改现有声明.
那么IClaimsTransformer的真实用途是什么?
解决方法:
你注意到了返回类型吗?这是ClaimsPrincipal.
您可以构建一个全新的ClaimsPrincipal,在现有的中添加或更改您喜欢的任何内容并将其返回.
标签:c,asp-net-core,asp-net-core-mvc,coreclr 来源: https://codeday.me/bug/20190611/1218625.html