我有这些角色:管理员、医生和患者。但是登录信息存储在不同的表中。管理员的用户名和密码存储在 User_TABle 中(它们是两个项目)。患者的登录信息存储在 Patient_TABLE 中:PatientID、Year 和 DocumentID(它们是三项)。我想使用 SQLRoleProvider 和 SQLProfileProvider。如何使用 loginView 设计不同的登录页面?
您忠诚的
我有这些角色:管理员、医生和患者。但是登录信息存储在不同的表中。管理员的用户名和密码存储在 User_TABle 中(它们是两个项目)。患者的登录信息存储在 Patient_TABLE 中:PatientID、Year 和 DocumentID(它们是三项)。我想使用 SQLRoleProvider 和 SQLProfileProvider。如何使用 loginView 设计不同的登录页面?
您忠诚的
我认为更好的设置是这样的:
使用 ASP.NET 附带的标准 MembershipProvider 与 RoleProvider 结合使用。一旦设置好并且您拥有角色,您可以通过以下方式存储每个角色的个人信息:
使用 ProfileProvider(不是一个糟糕的方法,但需要一些工作,因为您有多态数据(您可以使用 XML 将其存储在提供程序的文本字段中或编写您自己的自定义配置文件提供程序)
或者
向 aspnet_Users PK 添加一个类似于您的架构但具有外键的表。在代码中,您可以执行 Roles.IsUserInRole("Whatever") 并适当地更改 loginView。这也意味着您可以拖放剩余的 LoginControl 等,并让它与标准会员提供程序一起使用
SqlRoleProvider、SqlProfileProvider和SqlMembershipProvider带有默认的 Aspnetdb。
要创建这些提供程序使用的数据库,请运行 C:\WINDOWS\Microsoft.NET\Framework\ versionNumber 文件夹中的 aspnet_regsql.exe 可执行文件。否则,您必须创建CustomRoleProvider、CustomProfileProvider和CustomMembershipProvider。
http://msdn.microsoft.com/en-us/library/system.web.security.sqlroleprovider.aspx