ActiveDirectoryMembershipProvider.CreateUser Метод

Определение

Добавляет нового пользователя в хранилище данных Active Directory.

public:
 override System::Web::Security::MembershipUser ^ CreateUser(System::String ^ username, System::String ^ password, System::String ^ email, System::String ^ passwordQuestion, System::String ^ passwordAnswer, bool isApproved, System::Object ^ providerUserKey, [Runtime::InteropServices::Out] System::Web::Security::MembershipCreateStatus % status);
public override System.Web.Security.MembershipUser CreateUser(string username, string password, string email, string passwordQuestion, string passwordAnswer, bool isApproved, object providerUserKey, out System.Web.Security.MembershipCreateStatus status);
override this.CreateUser : string * string * string * string * string * bool * obj * MembershipCreateStatus -> System.Web.Security.MembershipUser
Public Overrides Function CreateUser (username As String, password As String, email As String, passwordQuestion As String, passwordAnswer As String, isApproved As Boolean, providerUserKey As Object, ByRef status As MembershipCreateStatus) As MembershipUser

Параметры

username
String

Имя пользователя для нового пользователя.

password
String

Пароль нового пользователя.

email
String

Адрес электронной почты нового пользователя.

passwordQuestion
String

Вопрос пароля для нового пользователя.

passwordAnswer
String

Ответ на пароль для нового пользователя.

isApproved
Boolean

Будет ли утвержден новый пользователь для проверки.

providerUserKey
Object

Уникальный идентификатор из источника данных членства для пользователя. Этот параметр должен быть null при использовании ActiveDirectoryMembershipProvider класса.

status
MembershipCreateStatus

При возврате этого метода содержит одно из MembershipCreateStatus значений перечисления, указывающее, был ли пользователь успешно создан.

Возвращаемое значение

ActiveDirectoryMembershipUser Экземпляр, содержащий сведения для только что созданного пользователя или null если пользователь не был успешно создан.

Исключения

Параметр providerUserKey не nullявляется .

Администратор не сопоставлял поля с вопросами и ответами паролей с атрибутами схемы Active Directory, а passwordQuestionpasswordAnswer также не nullсоответствует параметру.

Элемент конфигурации machineKey (ASP.NET settings Schema) указывает автоматически созданный ключ шифрования компьютера. Для хранения ответов на пароль необходимо ActiveDirectoryMembershipProviderявно задать decryptionKey атрибут элемента machineKey (ASP.NET Settings Schema).

–или–

Не ActiveDirectoryMembershipProvider удалось установить безопасное подключение к каталогу при попытке задать пароль для нового пользователя.

Произошла ошибка при попытке создать пользователя.

Комментарии

Метод CreateUser вызывается классом Membership для создания нового пользователя в хранилище данных Active Directory.

Для серверов ActiveDirectoryMembershipProvider Active Directory и Active Directory Application Mode (ADAM) класс требует, чтобы класс экземпляра в каталоге был user. Альтернативные пользовательские классы, такие как inetOrgPerson не поддерживаются.

При использовании сервера Active Directory и имени пользователя сопоставляется с userPrincipalName атрибутом, ActiveDirectoryMembershipProvider класс автоматически создает случайное 20-символьное имя пользователя для sAMAccountName параметра от вашего имени.

Параметры по умолчанию поддерживают следующие максимальные длины.

Параметр Максимальная длина
username 64 символа при использовании атрибута userPrincipalName . При использовании атрибута sAMAccountName общее ограничение составляет 20 символов или меньше.
password 128 символов.
email 256 символов.
passwordQuestion 256 символов.
passwordAnswer 128 символов до и после шифрования.

Свойство Comment возвращаемого экземпляра ActiveDirectoryMembershipUser ограничено 1024 символами.

Если схема каталога была изменена путем уменьшения максимально допустимой длины для этих атрибутов, эти длины будут иметь приоритет.

Перед созданием пользователя класс убедитесь, ActiveDirectoryMembershipProvider что имя пользователя уникально. ActiveDirectoryMembershipProvider Если экземпляр настроен на требование уникальных адресов электронной почты, он также обеспечит уникальный адрес электронной почты.

При использовании уникальности имени пользователя Active Directory выполняется поиск GC при сопоставлении userPrincipalNameимени пользователя. Если sAMAccountName используется, каталог будет автоматически применять уникальность sAMAccountName домена Active Directory.

Сервер ADAM автоматически применяет уникальность userPrincipalName имени пользователя во всех разделах приложения.

Уникальность адреса электронной почты применяется путем выполнения поддеревого поиска повторяющегося адреса электронной почты, начиная с корня контейнера, в котором создаются пользователи. Это либо контейнер пользователя по умолчанию (если он подключен к Active Directory, а контейнер не указан в строке подключения) или контейнер, указанный в строке подключения.

Класс ActiveDirectoryMembershipProvider создает пользователя непосредственно в контейнере пользователя, указанном в строке подключения. Дополнительные сведения о строках подключения см. в ActiveDirectoryMembershipProvider разделе класса.

Для настройки паролей на сервере connectionProtection Active Directory атрибут должен иметь значение SignAndSeal.

Если используется сервер ADAM, connectionProtection этот атрибут можно задать None, но только если вы явно настроили сервер ADAM, чтобы разрешить изменение пароля через незащищенные подключения.

Начальные и конечные пробелы обрезаются от всех строковых значений параметров, кроме password.

Это важно

Нельзя создавать новых пользователей, если учетные данные, используемые для подключения к серверу Active Directory, имеют права администратора домена (не рекомендуется) или "создать дочерний экземпляр", "удалить дочерний экземпляр" и "задать права доступа паролей". Требуется право доступа "удалить дочерний экземпляр", так как создание пользователя является многоэтапным процессом, и если какой-либо шаг создания пользователя завершается сбоем, класс удаляет экземпляр пользователя, ActiveDirectoryMembershipProvider а не оставляет частично созданный экземпляр пользователя в каталоге.

Применяется к

См. также раздел