我试图通过在应用程序的最开始的声明来获取登录的身份用户的名称。
程序中的代码。cs
app.UseAuthentication();
app.UseAuthorization();
var serviceProvider = app.Services;
using var scope = serviceProvider.CreateScope();
var httpContextAccessor = scope.ServiceProvider.GetRequiredService<IHttpContextAccessor>();
var user = httpContextAccessor.HttpContext.User;
结果:
对象引用未设置为对象的示例。
通过这一行调用:
var user = httpContextAccessor.HttpContext.User;
我的程序需要这个设置。我知道这可以通过使用控制器中的端点来完成,并且通过使用控制器对我有效,但这不是我所期望的。
总之,我需要它返回在程序开始时登录的IdentityUser的名称。cs谁有主意?(我不想使用控制器)
Additionaly我想得到这些索赔时,我的浏览器没有打开
1条答案
按热度按时间yhived7q1#
它可以使用IAuthenticationService接口完成。
另一种方法是实现自定义IStartupFilter,但我认为这将比上述方法更复杂。