有人可以在一些文档中指出在MVC应用程序中使用ApplicationUser的最佳实践吗?
我有一些我希望以ApplicationUser类为基础的类(例如,一个"员工"类用于使用该应用程序的内部人员和一个"客户端"类来提供客户也可以访问。
似乎我应该继承ApplicationUser或将其作为外键引用 - 但我不确定a)如何执行此操作或b)正确的方法是什么。
(我使用Code First Entity Framework来构建类。)
答案 0 :(得分:1)
当我使用基于令牌的授权编写其他API时,我使用了this。它还包含实现电子邮件服务,刷新令牌服务等的良好实践。共有6篇专注于认证的文章。一旦我不得不将项目从MySql Membership Authorization迁移到Microsoft Identity,我将其用作reference。在架构方面(类似于CoreModels - >业务逻辑服务/提供商 - > UI提供商)我有一个单独的项目,其中授权模块有它的主要组件,如
以及提供商(如果您想使用基于声明的授权或OAuth,则需要它们)
我建议你继承ApplicationUser类并以你喜欢的方式扩展它
public partial class User : IdentityUser<Guid, UserLogin, UserRole, UserClaim>
{
public decimal Balance { get; set; }
public string NickName { get; set; }
public int AnotherEntityId { get; set; }
[ForeignKey("AnotherEntityId ")]
public virtual AnotherEntity AnotherEntity { get; set; }
public virtual ICollection<OtherEntity> OtherEntities { get; set; }
public User()
{
Id = Guid.NewGuid();
}
}
而不是让2个表包含几乎类似的用户信息。角色将为您提供访问限制功能(如果客户和员工应具有不同的访问级别)