Membership.CreateUser для нескольких провайдеров членства - PullRequest
4 голосов
/ 19 мая 2011

У меня проблемы с обработкой нескольких провайдеров членства на одном сайте.

У меня есть страница регистрации, которая создает пользователя и добавляет его в домен AD. Раньше у меня был один провайдер членства и на странице я звонил

Membership.CreateUser(txtUsername.Text, txtPassword.Text) 

, который создал имя пользователя на основе пользовательских данных на странице.

Однако я добавил другого поставщика членства в web.config, чтобы страницу входа можно было использовать для входа из другой AD. Теперь моя страница регистрации не будет работать, потому что (я предполагаю) есть два поставщика членства?

Как я могу это исправить? Как мне указать, какой провайдер использовать при вызове Membership.CreateUser?

Спасибо.

Edit:

Правильный способ сделать это, как указано ниже:

MembershipCreateStatus newStatus = new MembershipCreateStatus();    
Membership.Providers["ProviderName"].CreateUser(txtUserName.Text, txtPassword.Text, null, null, null, true,null, out newStatus);

Спасибо!

Ответы [ 2 ]

9 голосов
/ 19 мая 2011
Membership.Providers["providername"].CreateUser(....);

Обратите внимание, что в этом случае существует только один метод CreateUser, но вы можете передать ноль других параметров, которые не нужны.

Редактировать:

Это единственный способ вызвать этот метод с явным поставщиком.Я не пытался создать пользователя в AD, поэтому не уверен насчет устранения этой ошибки, но здесь есть другой способ.Сделайте провайдер для CreateUser вашим провайдером по умолчанию, и вы сможете вернуться к старому вызову CreateUser.Но теперь вы настраиваете свой входящий вызов, чтобы использовать другого провайдера, например

Membership.Providers["providername"].ValidateUser()
1 голос
/ 19 мая 2011

Существует свойство Providers в Членство , которое содержит коллекцию поставщиков членства.Вы должны быть в состоянии различить, какого поставщика использовать оттуда.

...