Kem*_*min 10 c# asp.net asp.net-mvc asp.net-mvc-5 asp.net-identity
在MVC 5中创建一个新项目会启动所有必要的类来处理角色和用户,我可以修改自定义属性.我无法弄清楚的是,在我的场景中,我有多种不同类型的用户,例如主管理员,管理员,作者,供应商和租户.
所有这些都具有不同的属性以及一些共享属性.通常,我会在各自的数据库表中实现每种类型的用户名和密码.ASP.NET身份非常诱人,拥有集中的用户存储,其优势在于以易于使用的方式管理身份验证,并具有操作结果.
我已经阅读了谷歌搜索的每一个结果,但与我的场景类似的唯一解决方案是使用声明(据我所知,并非专门用于处理这种特定情况)
如果有一种方式asp.net身份支持这种情况,我在徘徊?
任何帮助,将不胜感激.谢谢.
您有两种选择来实现您的目的:
ApplicationUser类并通过授权做形式分离Roles。if(User.IsInRole("UserTypeName"))因此,您可以根据用户的角色创建一个带有条件输入的表单(限制在 razor 中显示的内容) RoleManager,或者为每个用户类型创建单独的视图并在控制器端对它们进行授权。喜欢:
public class CustomUser: ApplicationUser
{
...
}
Run Code Online (Sandbox Code Playgroud)
您最终将在AspNetUsers表中得到一个鉴别器列,该列将帮助实体框架识别应该为行(或行)实例化哪个类。然后您可以像平常一样查询,或者如果您只想要一种或另一种特定类型,您可以使用:CustomUserApplicationUserOfType<T>
var customUsers = db.Users.OfType<CustomUser>();
Run Code Online (Sandbox Code Playgroud)
请记住,添加到继承类的任何属性都必须是nullable. 您不能要求在数据库级别要求诸如DateTimeon之类的东西,因为它会阻止保存 an ,而它不具有该属性。然而,这只是数据库级别的问题。您仍然可以使用视图模型从前端角度创建所需的特定属性。CustomUserApplicationUserCustomUser
| 归档时间: |
|
| 查看次数: |
1369 次 |
| 最近记录: |