gpt4 book ai didi

c# - 在 MVC 中将 ASP.NET Identity 与我自己的实体一起使用

转载 作者:行者123 更新时间:2023-11-30 21:57:59 24 4
gpt4 key购买 nike

在我的“租车”解决方案中,我有一个单独的项目,其中包含我的所有实体,例如用户、角色、汽车、预订等。我使用 EntityFramework Code First 生成数据库。所有这些都工作正常。我在我的解决方案中添加了一个 MVC 项目。现在我想充分利用 ASP.NET Identity 2.x 模型。我的问题是:如何将 MVC 项目附带的 ApplicationUser 与我自己的用户类结合起来?我的用户类:

public partial class User
{
public User()
{
}
[Key]
public int Id { get; set; }
[StringLength(200)]
public string FirstName { get; set; }
[StringLength(200)]
public string LastName { get; set; }
[StringLength(200)]
public string Address1 { get; set; }
[StringLength(200)]
public string Address2 { get; set; }
[StringLength(200)]
public string Address3 { get; set; }
[StringLength(20)]
public string ZipCode { get; set; }
[StringLength(200)]
public string City { get; set; }
[StringLength(200)]
public string Country { get; set; }
[StringLength(200)]
public string Phone { get; set; }
[StringLength(200)]
public string MobilePhone { get; set; }
[StringLength(200)]
public string WorkPhone { get; set; }
}

我是否应该将所有用户属性移至 ApplicationUser 类,并在我自己的类(例如 Booking 类)中向 ApplicationUser 添加一个外键?

最佳答案

ApplicationUser 没有什么特别之处。它只是一个继承自 IdentityUser 的类的默认实现。即便如此,这种继承也只是引导 Identity 中的所有功能,例如角色、声明等。

您可以完全删除 ApplicationUser 并使您的用户类继承自 IdentityUser 或者您可以将属性从您的用户类移动到 ApplicationUser并删除您的用户类别。无论哪种方式,结果都是一样的。

而且,是的,您希望在与“用户”相关的类和任何最终成为您的“用户”类的类之间创建外键。同样,ApplicationUser 没有什么特别之处,因此如果您选择坚持使用它,您可以像项目中的任何其他 POCO 一样设置它,根据需要创建与其他实体的关系。

有些人建议从 ApplicationUser 继承您的用户类,但我认为这不是个好主意。从用于 Identity 的“用户”基类继承是有正当理由的,但这里您处理的不是不同类型的用户,而是一种需要额外属性的用户类型。如果您无权访问基类来修改它,那么继承实际上只是一种可以接受的实现方式。在这里,你做的。这是你的课;项目模板只是为您创建的。

关于c# - 在 MVC 中将 ASP.NET Identity 与我自己的实体一起使用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30351702/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com