В моих функциях администратора приложения asp.net я пытаюсь объединить аутентификацию AD и авторизацию формы для создания пользователей, ролей и назначения пользователей ролям и т.д. После входа пользователя в систему с использованием аутентификации AD мне нужно переключить / назначить мой объект членства на использование AspNetSqlMembershipProvider, чтобы получить всех пользователей из объекта членства (из таблицы dbo.aspnet_Users). Как переключить провайдера во время выполнения? Я пробовал разные подходы после поиска этой проблемы, и пока что ни один из них не работает для меня. Вот несколько подходов, которые я пробовал: 1. foreach (MembershipProvider mp в Membership.Providers) {if (mp.Name == "MembershipADProvider") {Membership.Providers.Remove (MembershipADProvider ");
Пользователи MembershipUserCollection = Членство. GetAllUsers (); ddlUsers.DataSource = users; ddlUsers.DataBind ();
break;}}
Membership.Providers.Remove (MembershipADProvider "); - не работает, поскольку не поддерживается .. Кроме того, попытался очистить Membership.Providers, а затем добавить только тип AspNetSqlMembershipProvider, который также не поддерживается.
Я не могу установить для Membership.Provider значение из Membership.Providers ["AspNetSqlMembershipProvider"], поскольку Membership.Provider является свойством только для чтения.
Я попытался переключить строку соединения между двумя провайдерами, которые не переключили провайдера, так как оба являются разными типами провайдеров ... если бы оба были провайдерами sqlserver, я считаю, что это сработало бы.
Пожалуйста, дайте мне знать, успешно ли кто-нибудь внедрил этот подход или вообще правдоподобен. Спасибо!