В ядре ASP.Net вы можете использовать реализацию IClaimsTransformer.Что такое использование 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
}
}
}
Однако ClaimsIdentity.Claims
только для чтения свойство. Также Claim.Type
, Claim.Value
- только свойства readonly.
Это означает, что при реализации IClaimsTransformer
вы можете добавлять только новые претензии. Вы не можете удалить или изменить существующие претензии.
Итак, каково реальное использование IClaimsTransformer?
Если я храню данные в сеансе, я могу просто прочитать его непосредственно из сеанса, поскольку сеанс доступен в HttpContext. Зачем мне претендовать и читать его из Претензий. Заявки – LP13
могут использоваться для различных целей. одно общее использование удовлетворяет требованиям для политики авторизации. в большинстве случаев претензии не требуются, потому что в большинстве случаев вы можете избежать множества претензий или больших полезных нагрузок, но они есть, если вам это нужно. вам может и не понадобиться, но у этого есть использование, возможно, главным образом использование края. –
@blowdart имеет лучший ответ, чем мой, наверняка –