我在我的新的asp.net核心2.0 API应用程序中使用JWT承载者认证,并且想要为当前身份添加一些额外的声明。这个额外的信息位于另一个需要查询的api中。我的理解是,索赔转换将是适当的地方做到这一点。在.net核心1.1中,您有Microsoft.AspNetCore.Authentication nuget包中的IClaimsTransformer接口,但我无法在我的.net核心2.0应用程序中安装此接口。在asp.net核心2.0中有没有另外一种方法来转换声明,这是我用例的正确方法吗?asp.net核心2.0声称转换支持丢失
1
A
回答
3
还有另一种转换ASP.NET Core 2.0中的声明的方法,该方法还允许您访问UserStore,以便您可以检索用户数据并将该信息作为声明添加。基本上,您编写接口IUserClaimsPrincipalFactory的实现,并使用它将您的自定义实现作为服务添加到Startup.cs中的ConfigureServices方法中。 Core 1.x中Core 2.0的主要变化是Identity依赖于服务的依赖注入,而不是在身份管道中使用中间件。在创建自定义IUserClaimsPrincipalFactory以及如何在此blog post中使用它进行授权时,有一个完整示例。
1
IClaimsTransformer
已在ASP.NET Core 2.0中重命名为IClaimsTransformation
。
声明转换简单,用 一个方法新IClaimsTransformation服务:任务TransformAsync(ClaimsPrincipal 本金),我们称这种对任何成功的AuthenticateAsync电话。
services.AddSingleton<IClaimsTransformation, ClaimsTransformer>(); private class ClaimsTransformer : IClaimsTransformation { // Can consume services from DI as needed, including scoped DbContexts public ClaimsTransformer(IHttpContextAccessor httpAccessor) { } public Task<ClaimsPrincipal> TransformAsync(ClaimsPrincipal p) { p.AddIdentity(new ClaimsIdentity()); return Task.FromResult(p); } }
相关问题
- 1. AppHarbor - ASP.NET核心支持
- 2. Hg转换丢失分支
- 3. Asp.Net核心支持HttpCaching Nuget包
- 4. 保持核心动画转换持续?
- 5. .net核心:Assert支持C#.NET核心
- 6. asp.net 2.0核心拥有
- 7. 支持库丢失
- 8. 核心数据支持NSNull
- 9. 核心Polymer 2.0是否支持双向绑定?
- 10. .NET MVC核心当前的SDK不支持.NET标准2.0
- 11. log4net不支持.Net核心2.0中的AdoNetAppender?
- 12. 核心转储声明
- 13. ASP.NET核心:package.json缺失
- 14. 错误的ASP.Net添加新的迁移EF核心2.0核心2.0
- 15. asp.net 2.0核心预览包还原失败
- 16. HTTP错误404.13 - asp.net核心2.0
- 17. 在asp.net核心2.0中的机器键?
- 18. ASP.NET 2.0的核心中间件认证
- 19. ASP.NET 2.0核心应用的WebAPI 16.04
- 20. Asp.Net核心2.0 Webapi简单认证
- 21. ASP.net核心2.0无法找到services.AddSession();
- 22. Asp.net核心2.0 Razor页面Ajax后
- 23. Bundle标识符丢失核心数据丢失
- 24. 核心数据丢失实体
- 25. Xcode核心数据模型丢失
- 26. 核心数据丢失的对象
- 27. 核心数据丢失月份
- 28. 核心数据导入丢失字段
- 29. iPhone核心数据丢失实体
- 30. 核心数据丢失记录iphone
你能否详细说明如何使用'IUserClaimsPrincipalFactory'在SSO场景? – Liero