Compartilhar via


ActiveDirectoryMembershipProvider.CreateUser Método

Definição

Adiciona um novo usuário ao armazenamento de dados do 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

Parâmetros

username
String

O nome de usuário do novo usuário.

password
String

A senha do novo usuário.

email
String

O endereço de email do novo usuário.

passwordQuestion
String

A pergunta da senha do novo usuário.

passwordAnswer
String

A resposta da senha do novo usuário.

isApproved
Boolean

Se o novo usuário é aprovado para ser validado ou não.

providerUserKey
Object

O identificador exclusivo da fonte de dados de associação para o usuário. Esse parâmetro deve ser null ao usar a classe ActiveDirectoryMembershipProvider.

status
MembershipCreateStatus

Quando esse método retorna, ele contém um dos valores de enumeração MembershipCreateStatus que indica se o usuário foi criado com êxito.

Retornos

Uma instância ActiveDirectoryMembershipUser que contém as informações do usuário recém-criado ou null se o usuário não foi criado com êxito.

Exceções

O parâmetro providerUserKey não é null.

O administrador não mapeou os campos de pergunta e resposta de senha para os atributos de esquema do Active Directory e os parâmetros passwordQuestion ou passwordAnswer não são null.

O elemento de configuração do Elemento machineKey (Esquema de Configurações do ASP.NET) indica uma chave de criptografia do computador gerada automaticamente. É necessário definir explicitamente o atributo decryptionKey do elemento do Elemento machineKey (Esquema de Configurações do ASP.NET) para armazenar as respostas de senha com o ActiveDirectoryMembershipProvider.

- ou -

O ActiveDirectoryMembershipProvider não pôde estabelecer uma conexão segura ao diretório ao tentar definir a senha para o novo usuário.

Ocorreu um erro durante a tentativa de criar o usuário.

Comentários

O CreateUser método é chamado pela Membership classe para criar um novo usuário no armazenamento de dados do Active Directory.

Para servidores do Active Directory e do MODO de Aplicativo do Active Directory (ADAM), a ActiveDirectoryMembershipProvider classe exige que a classe de instância no diretório seja user. Não há suporte para classes de usuário alternativas, como inetOrgPerson .

Ao usar um servidor do Active Directory e o nome de usuário for mapeado para o userPrincipalName atributo , a ActiveDirectoryMembershipProvider classe gerará automaticamente um nome de usuário aleatório de 20 caracteres para o sAMAccountName parâmetro em seu nome.

Os parâmetros assumem como padrão os comprimentos máximos a seguir.

Parâmetro Tamanho máximo
username 64 caracteres se estiver usando o userPrincipalName atributo . Se estiver usando o sAMAccountName atributo , a restrição comum será de 20 caracteres ou menos.
password 128 caracteres.
email 256 caracteres.
passwordQuestion 256 caracteres.
passwordAnswer 128 caracteres antes e depois da criptografia.

A Comment propriedade na instância retornada ActiveDirectoryMembershipUser é limitada a 1024 caracteres.

Se o esquema de diretório tiver sido modificado reduzindo os comprimentos máximos permitidos para esses atributos, esses comprimentos terão precedência.

Antes de criar o usuário, a ActiveDirectoryMembershipProvider classe garantirá que o nome de usuário seja exclusivo. Se a ActiveDirectoryMembershipProvider instância estiver configurada para exigir endereços de email exclusivos, ela também garantirá que o endereço de email seja exclusivo.

Em uma exclusividade de nome de usuário do Active Directory é imposta executando uma pesquisa de GC quando o nome de usuário é mapeado para userPrincipalName. Se sAMAccountName for usado, o diretório imporá automaticamente a sAMAccountName exclusividade do em todo o domínio do Active Directory.

Um servidor ADAM imporá automaticamente a exclusividade de nome de usuário do userPrincipalName em todas as partições de aplicativo.

A exclusividade do endereço de email é imposta executando uma pesquisa de subárvore para um endereço de email duplicado começando na raiz do contêiner no qual os usuários são criados. Esse é o contêiner de usuário padrão (se conectado a um Active Directory e nenhum contêiner foi especificado na cadeia de conexão) ou o contêiner especificado na cadeia de conexão.

A ActiveDirectoryMembershipProvider classe cria o usuário diretamente no contêiner de usuário especificado na cadeia de conexão. Consulte o tópico de ActiveDirectoryMembershipProvider classe para obter mais informações sobre cadeias de conexão.

Para que as senhas sejam definidas em um servidor do Active Directory, o connectionProtection atributo deve ser definido SignAndSealcomo .

Quando um servidor ADAM está sendo usado, o connectionProtection atributo pode ser definido Nonecomo , mas somente se você configurar explicitamente o servidor ADAM para permitir alterações de senha em conexões não seguras.

Os espaços à esquerda e à direita são cortados de todos os valores de parâmetro de cadeia de caracteres, exceto password.

Importante

Você não pode criar novos usuários, a menos que as credenciais usadas para se conectar ao servidor do Active Directory tenham direitos de Administrador de Domínio (não recomendado) ou os direitos de acesso "criar instância filho", "excluir instância filho" e "definir senha". O direito de acesso "excluir instância filho" é necessário porque a criação de um usuário é um processo de várias etapas e, se qualquer etapa de criação do usuário falhar, a ActiveDirectoryMembershipProvider classe excluirá a instância do usuário em vez de deixar uma instância de usuário parcialmente construída no diretório.

Aplica-se a

Confira também