我试图在Blazor WebAssembly 3.2的默认模板中获取自定义属性,但是当我在blazor.server部分调试context.User.Identity.Name时,它为null。我可以看到用户是context.User.Identity.IsAUthenticated为true,但是所有其他属性似乎为null或为空。
因此要重现:
任何人都可以找到有关此问题的指南或提示。谢谢
答案 0 :(得分:2)
注意:该模板将电子邮件存储在数据库的电子邮件和名称字段中。
在服务器中的Startup.cs
中。将这些选项添加到AddApiAuthorization
。
services.AddIdentityServer()
.AddApiAuthorization<ApplicationUser, ApplicationDbContext>(options =>
{
options.IdentityResources["openid"].UserClaims.Add("name");
options.ApiResources.Single().UserClaims.Add("name");
});
在您的控制器中
Public async Task<IEnumerable<WeatherForecast>> Get()
{
var userName = User.Identity.Name;
var applicationUser = await userManager.FindByNameAsync(userName);
...