我在我的新的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. 支持库丢失
- 7. asp.net 2.0核心拥有
- 8. 核心数据支持NSNull
- 9. 核心Polymer 2.0是否支持双向绑定?
- 10. log4net不支持.Net核心2.0中的AdoNetAppender?
- 11. .NET MVC核心当前的SDK不支持.NET标准2.0
- 12. 错误的ASP.Net添加新的迁移EF核心2.0核心2.0
- 13. Bundle标识符丢失核心数据丢失
- 14. asp.net 2.0核心预览包还原失败
- 15. 核心数据丢失月份
- 16. iPhone核心数据丢失实体
- 17. Xcode核心数据模型丢失
- 18. 核心数据丢失记录iphone
- 19. Asp.Net核心2.0 Webapi简单认证
- 20. ASP.net核心2.0无法找到services.AddSession();
- 21. ASP.NET 2.0核心应用的WebAPI 16.04
- 22. Asp.net核心2.0 Razor页面Ajax后
- 23. 在asp.net核心2.0中的机器键?
- 24. 核心数据支持的非核心数据数据UITableView
- 25. ADFS 2.0声明转换
- 26. SonarLint Visual Studio 2015插件不支持asp.net核心?
- 27. ASP.net核心不支持实体框架-Visual studio 2015
- 28. Dapper支持空间类型.net核心
- 29. 支持.NET核心的NuGet包
- 30. Azure服务总线DNX核心支持
你能否详细说明如何使用'IUserClaimsPrincipalFactory'在SSO场景? – Liero