客户和员工的认同感



我目前为我的电子商务应用程序的客户和员工设计表,我使用asp.net核心身份。我想知道我是否应该为员工和客户使用1表用户(又名aspnetuser),或者我应该将它们分开并使用用户id作为外键?如果将它们与外键为用户id的新表分开,我如何使用用户管理器为员工和客户创建帐户?谢谢。

您可以扩展基本的IdentityUser类,以便创建一个包含额外字段的表,例如:

public class MyIdentityUser : IdentityUser<string>
{
public string FirstName { get; set; }
public string LastName { get; set; }
public string Type { get; set; }
...

其中Type字段可以是StaffCustomer

或者您可以使用一个或多个附加表,并使用IdentityUser中定义的Id。class fromMicrosoft.ASpNetCore.Identity:

public class IdentityUser<TKey> where TKey : IEquatable<TKey>
{
/// <summary>
/// Initializes a new instance of <see cref="IdentityUser{TKey}"/>.
/// </summary>
public IdentityUser() { }
/// <summary>
/// Initializes a new instance of <see cref="IdentityUser{TKey}"/>.
/// </summary>
/// <param name="userName">The user name.</param>
public IdentityUser(string userName) : this()
{
UserName = userName;
}
/// <summary>
/// Gets or sets the primary key for this user.
/// </summary>
[PersonalData]
public virtual TKey Id { get; set; }
...

您可以定义Id字段的类型,就像我前面的例子一样,并在自定义表/表中的相关字段(如IdentityUserId)上使用相同的类型。

如果您扩展IdentityUser基类,则需要使用此声明创建派生上下文,如下所示:

namespace MyProject.Infrastructure.Contexts
{
public class MyContext : IdentityDbContext<MyIdentityUser>
{
...

相关内容

  • 没有找到相关文章

最新更新