【发布时间】:2023-01-27 09:03:46
【问题描述】:
在我的项目中,我目前正在处理用户角色(声明)和注册。
我正在为我应该使用哪种方法或者是否有任何我可以基于的来源而苦苦挣扎。 我有两种类型的应用程序用户(与应用程序的域相关),假设他们是讲师和学生,这些实体在几个领域有所不同,所以我想将它们分开。
我现在应该如何设计实体?
有一些案例,但我不确定如何涵盖它们。
用户可以是讲师
用户可以是学生
用户可以同时是讲师和学生(同时)
我该如何管理?
我正在考虑为每个实体(Lecturer/Student/AnyOtherType)添加一个外键以引用 IdentityUser 并在注册期间通过声明定义用户类型
userIdentity.AddClaim(new Claim(ClaimTypes.Role, "Lecturer"))
userIdentity.AddClaim(new Claim(ClaimTypes.Role, "Student"));
你认为这是个好主意吗? 如何根据用户角色处理传入请求?我知道我可以在某些服务中使用类似于以下示例的内容,但理想情况下,我想避免对数据库进行不必要的调用,只是为了过滤掉服务中所需的数据
user.IsInRole("lecturer")
我专注于 DDD rn。
【问题讨论】:
-
我认为你应该有一个用户表来存储所有共享信息,并将角色和用户 ID 等放入一个单独的表中。
标签: c# .net asp.net-core .net-core asp.net-web-api