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 de senha para o novo usuário.

passwordAnswer
String

A resposta de senha para o novo usuário.

isApproved
Boolean

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

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 ActiveDirectoryMembershipProvider classe.

status
MembershipCreateStatus

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

Retornos

Uma ActiveDirectoryMembershipUser instância 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 providerUserKey parâmetro não nullé .

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

O elemento machineKey (ASP.NET Esquema de Configurações) indica uma chave de criptografia de máquina gerada automaticamente. Você deve definir explicitamente o decryptionKey atributo do elemento machineKey (ASP.NET Esquema de Configurações) para armazenar respostas de senha com o ActiveDirectoryMembershipProvider.

- ou -

Não ActiveDirectoryMembershipProvider foi possível estabelecer uma conexão segura com o diretório ao tentar definir a senha para o novo usuário.

Erro ao tentar 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 adam (modo de aplicativo) do Active Directory e do Active Directory, a ActiveDirectoryMembershipProvider classe exige que a classe de instância no diretório seja user. Classes de usuário alternativas, como, por inetOrgPerson exemplo, não têm suporte.

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 são padrão para os comprimentos máximos a seguir.

Parâmetro Comprimento 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 1.024 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 a execução de 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 domínio do Active Directory.

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

A exclusividade do endereço de email é imposta executando uma pesquisa de subárvores 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 da 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 como SignAndSeal.

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

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