.NET - 身份不包含自定义字段的定义
.NET - Identity does not contain a definition for the custom field
我正在做一个身份项目,我现在正在尝试创建一个端点来获取用户配置文件。我希望每个个人资料都有个人资料图片。
我在名为 User
的新模型 class 中添加了自定义字段,如下所示:
public class User : IdentityUser
{
public string? ProfileImage { get; set; }
}
我也在我的startup.cs
中添加了
services.AddIdentity<User, IdentityRole>()
.AddEntityFrameworkStores<AppDbContext>()
.AddDefaultTokenProviders();
还有 AppDbContext
public class AppDbContext : IdentityDbContext<User>
{
public AppDbContext([NotNull] DbContextOptions options) : base(options) {}
protected override void OnModelCreating(ModelBuilder builder)
{
base.OnModelCreating(builder);
}
}
我还有 AutoMapper 将我的 UserDto 映射到用户 class。
但是,在我的 AuthController 中,我试图创建一个端点来获取具有 Id 的用户,但我收到一个错误,指出 IdentityUser 不包含 ProfileImage 的定义。
[HttpGet("getUser/{id}")]
public async Task<ActionResult> GetCurrentUser(string id)
{
var user = await userManager.FindByIdAsync(id);
var model = new UserDto()
{
Id = user.Id,
UserName = user.Email,
Email = user.Email,
ProfileImage = user.ProfileImage <--- error on this line
};
return Ok(model);
}
我错过了什么,我能做些什么来解决这个问题?
非常感谢!
这里的问题是我将 IdentityUser
放在 UserManager
和 SignInManager
中,而不是我应该使用我的 User
class
我从这个改的
private readonly UserManager<IdentityUser> userManager;
private readonly SignInManager<IdentityUser> signInManager;
public AuthController(UserManager<IdentityUser> userManager,
SignInManager<IdentityUser> signInManager)
{
this.userManager = userManager;
this.signInManager = signInManager;
}
对此
private readonly UserManager<User> userManager;
private readonly SignInManager<User> signInManager;
public AuthController(UserManager<User> userManager,
SignInManager<User> signInManager)
{
this.userManager = userManager;
this.signInManager = signInManager;
}
我正在做一个身份项目,我现在正在尝试创建一个端点来获取用户配置文件。我希望每个个人资料都有个人资料图片。
我在名为 User
的新模型 class 中添加了自定义字段,如下所示:
public class User : IdentityUser
{
public string? ProfileImage { get; set; }
}
我也在我的startup.cs
services.AddIdentity<User, IdentityRole>()
.AddEntityFrameworkStores<AppDbContext>()
.AddDefaultTokenProviders();
还有 AppDbContext
public class AppDbContext : IdentityDbContext<User>
{
public AppDbContext([NotNull] DbContextOptions options) : base(options) {}
protected override void OnModelCreating(ModelBuilder builder)
{
base.OnModelCreating(builder);
}
}
我还有 AutoMapper 将我的 UserDto 映射到用户 class。
但是,在我的 AuthController 中,我试图创建一个端点来获取具有 Id 的用户,但我收到一个错误,指出 IdentityUser 不包含 ProfileImage 的定义。
[HttpGet("getUser/{id}")]
public async Task<ActionResult> GetCurrentUser(string id)
{
var user = await userManager.FindByIdAsync(id);
var model = new UserDto()
{
Id = user.Id,
UserName = user.Email,
Email = user.Email,
ProfileImage = user.ProfileImage <--- error on this line
};
return Ok(model);
}
我错过了什么,我能做些什么来解决这个问题?
非常感谢!
这里的问题是我将 IdentityUser
放在 UserManager
和 SignInManager
中,而不是我应该使用我的 User
class
我从这个改的
private readonly UserManager<IdentityUser> userManager;
private readonly SignInManager<IdentityUser> signInManager;
public AuthController(UserManager<IdentityUser> userManager,
SignInManager<IdentityUser> signInManager)
{
this.userManager = userManager;
this.signInManager = signInManager;
}
对此
private readonly UserManager<User> userManager;
private readonly SignInManager<User> signInManager;
public AuthController(UserManager<User> userManager,
SignInManager<User> signInManager)
{
this.userManager = userManager;
this.signInManager = signInManager;
}