ASP.net中的角色提供程序

ASP.net中的角色提供程序,asp.net,roleprovider,role,Asp.net,Roleprovider,Role,我有以下角色:管理员、医生和患者。但登录信息存储在不同的表中。管理员的用户名和密码存储在User_Table中,它们是两项。患者的登录信息存储在Patient_表中:PatientID、Year和DocumentId。它们是三项。我想使用SQLRoleProvider和SQLProfileProvider。如何使用loginView设计不同的登录页面 您诚挚的我认为更好的设置是: 使用ASP.NET附带的标准MembershipProvider与RoleProvider一起使用。设置完毕且您拥有

我有以下角色:管理员、医生和患者。但登录信息存储在不同的表中。管理员的用户名和密码存储在User_Table中,它们是两项。患者的登录信息存储在Patient_表中:PatientID、Year和DocumentId。它们是三项。我想使用SQLRoleProvider和SQLProfileProvider。如何使用loginView设计不同的登录页面


您诚挚的

我认为更好的设置是:

使用ASP.NET附带的标准MembershipProvider与RoleProvider一起使用。设置完毕且您拥有角色后,您可以通过以下方式存储每个角色的个人信息:

使用ProfileProvider不是一个坏方法,但需要做一些工作,因为您有多态数据,您可以使用XML将其存储在provider的文本字段中,或者编写自己的自定义概要文件提供程序

向aspnet_用户PK添加一个类似于您的模式但带有外键的表。在代码中,您可以执行Roles.isuserinrole,并适当地更改loginView。这也意味着您可以拖放其余的LoginControl等,让它只与标准成员资格提供程序一起工作,SqlRoleProvider、SqlProfileProvider和SqlMembershipProvider附带默认的Aspnetdb

要创建这些提供程序使用的数据库,请运行C:\WINDOWS\Microsoft.NET\Framework\versionNumber文件夹中的aspnet_regsql.exe可执行文件。否则,您必须创建CustomRoleProvider、CustomProfileProvider和CustomMembershipProvider


如果您正在考虑使用自定义成员身份模式,即您在问题中定义的模式,那么您可能会遇到大多数登录/成员身份控件的问题。您是否使用定义的架构定义了自定义成员资格提供程序?当我使用roleprovider时,我同时使用成员资格提供程序,因此所有用户的登录信息都保存在一个表中。我只是想,如果你改变了课程,你必须用自己的课程来完成。@EricYin-我想你是说会员资格提供者,不是吗MembershipService@PaulSullivan你说得对。我把它包好了,所以我忘了它的真名。更改您甚至不必在VS2010中再这样做-创建新的ASP.NET项目,然后尝试使用虚拟凭据从默认站点登录。仅此操作调用数据库和模式创建CustomRoleProvider是否解决了多个用户类型问题?如果是,我怎么做?我对一个用户类型使用了CustomProvider。我不知道用户角色,因为他还没有登录。我在loginView中遇到问题。我有不同的用户类型。我应该为他们设计不同的loginView吗?如果你不知道用户是谁,你如何设计不同的loginView?根据定义,他们必须先登录,然后才能显示对用户类型有意义的内容。