Роль провайдера в ASP.net - PullRequest
0 голосов
/ 24 марта 2012

У меня есть следующие роли: администратор, доктор и пациент.Но информация для входа хранится в другой таблице.Имя пользователя и пароль администратора хранятся в User_TABle (это два элемента).Регистрационная информация пациента хранится в Patient_TABLE: PatientID, Year и DocumentID (это три элемента).Я хочу использовать SQLRoleProvider и SQLProfileProvider.Как мне создать другую страницу входа в систему с помощью loginView?

С уважением,

Ответы [ 2 ]

0 голосов
/ 24 марта 2012

SqlRoleProvider , SqlProfileProvider и SqlMembershipProvider поставляются по умолчанию с Aspnetdb.

Чтобы создать базу данных, используемую этими поставщиками, запустите исполняемый файл aspnet_regsql.exe, который находится в папке C: \ WINDOWS \ Microsoft.NET \ Framework \ versionNumber.В противном случае вам необходимо создать CustomRoleProvider , CustomProfileProvider и CustomMembershipProvider .

http://msdn.microsoft.com/en-us/library/system.web.security.sqlroleprovider.aspx

0 голосов
/ 24 марта 2012

Я думаю, что лучшая настройка будет такой:

Используйте стандартный MembershipProvider, поставляемый с ASP.NET, для использования вместе с RoleProvider.Как только это настроено, и у вас есть роли, вы можете хранить личную информацию для каждой из них:

Использование ProfileProvider (неплохой метод, но требует немного работы, поскольку у вас есть полиморфные данные (вы должны хранить их с использованием XML)в текстовом поле провайдера или напишите свой собственный провайдер собственного профиля)

ИЛИ

Добавьте таблицу, похожую на вашу схему, но с внешним ключом к ПК aspnet_Users. В коде вы можете сделатьRoles.IsUserInRole («Все что угодно») и измените loginView соответствующим образом. Это также означает, что вы можете просто перетащить оставшийся LoginControl и т. Д., И он будет работать только со стандартным поставщиком членства

...