Função: ADUserValidFaz a autenticação de uma conta de usuário de um domínio baseado no Active Directory do Microsoft Windows. Sintaxe Bloco de código |
---|
| ADUserValid( < cDomainName >, < cUserName >, < cPassword > | ) --> lValidCenário 1 - Autenticação por credenciais:Neste cenário a credencial do usuário é informada. Entende-se por credencial: O nome do domínio, o nome do usuário e a senha do usuário.Cenário 2 - Autenticação por SID:Neste segundo cenário, o Security Identifier (SID) e a senha do usuário são informados. O SID, representado por uma string de caracteres, pode ser resgatado do usuário autenticado na estação através da função Parâmetros GetCredential()Parâmetros/ElementosNome | Tipo | Descrição | Obrigatório | Referência |
---|
cDomainName |
Caractercaractere | Cenário 1: Nome do domínio no qual encontra-se a estação. Cenário |
Cenário 2: Código SID do usuário autenticado na estação. | X |
| cUserName |
Caractercaractere | Cenário 1: Nome do usuário pertencente ao domínio informado. Cenário |
Cenário 2: String vazia, obrigatoriamente. | X |
| cPassword |
Caractercaractere | Ambos os cenários: Senha do usuário informado. | X |
|
RetornolValid (lógico)Tipo | Descrição |
---|
lValid | bloco de código | Retorna verdadeiro (.T.) se a autenticação no domínio foi realizada com sucesso, caso contrário, falso (.F.). |
Observações- Função válida somente para estações rodando TOTVS Smart Client para Microsoft Windows. O retorno da função será sempre falso (.F.) caso seja invocada em estações com outros sistemas operacionais.
- Essa função pode ser utilizada somente para autenticação em domínios baseados no Active Directory da Microsoft, não compreendendo contas de usuários locais da estação.
- Somente contas de usuários do domínio no qual encontra-se a estação poderão ser validadas. Caso seja informada uma credencial de outro domínio, diferente do qual a estação pertence, o retorno será sempre falso (.F.).
- Essa função está disponível em builds superiores à 7.00.120420A.
- A partir da build 7.00.131227A com data de geração superior a 06/01/2016 a autenticação no domínio também poderá ocorrer na máquina rodando o TOTVS Application Server desde que o sistema operacional seja Microsoft Windows. Primeiramente ocorrerá a tentativa de autenticação no domínio da estação rodando o TOTVS Smart Client e, em caso de insucesso, automaticamente ocorrerá a tentativa de autenticação no domínio da máquina rodando o TOTVS Application Server.
- Essa função utiliza a API da Microsoft através das bibliotecas advapi32 e netapi32 para realizar a autenticação dos usuários. Basicamente são utilizadas duas funções da API que foram relacionadas abaixo, onde é possível consultar seus detalhes e requisitos de plataforma na base de documentação da Microsoft:
Exemplos Bloco de código |
---|
language | cpp |
---|
theme | Eclipse |
---|
linenumbers | true |
---|
collapse | false |
---|
| User Function Exemplo()
|
Exemplos
User Function ADUserValid() |
DEFINE DIALOG oDlg TITLE "Exemplo ADUserValid" FROM 180,180 TO 450,600 PIXEL |
cTGetPassword := space(40) |
oSayDomain:= TSay():New(13,01,{||'Domínio:'},oDlg,,,,,,.T.,CLR_RED,CLR_WHITE,200,7) |
oTGetDomain := TGet():New( 20,01,{|x| If(Pcount()>0, cTGetDomain:= x, cTGetDomain)},oDlg,096,009,"",,0,,,.F.,,.T.,,.F.,,.F.,.F.,,.F.,.F.,,cTGetDomain,,,,) |
oSayUser:= TSay():New(35,01,{||'Usuário:'},oDlg,,,,,,.T.,CLR_RED,CLR_WHITE,200,7) |
oTGetUser := TGet():New( 42,01,{|x| If(Pcount()>0, cTGetUser:= x, cTGetUser)},oDlg,096,009,"",,0,,,.F.,,.T.,,.F.,,.F.,.F.,,.F.,.F.,,cTGetUser,,,,) |
oSayPassword:= TSay():New(56,01,{||'Senha:'},oDlg,,,,,,.T.,CLR_RED,CLR_WHITE,200,7) |
oTGetPassword := TGet():New( 63,01,{|x| If(Pcount()>0, cTGetPassword:= x, cTGetPassword)},oDlg,096,009,"",,0,,,.F.,,.T.,,.F.,,.F.,.F.,,.F.,.T.,,cTGetPassword,,,,) |
oTButtonLogin1 := TButton():New( 82, 01, "Login",oDlg,{|| alert(ADUserValid(alltrim(cTGetDomain), alltrim(cTGetUser), alltrim(cTGetPassword))) },96,10,,,.F.,.T.,.F.,,.F.,,,.F. ) |
ACTIVATE DIALOG oDlg CENTERED | returnAbrangência Protheus 10 , TOTVS Application Server 10 , ByYou Application ServerVeja também |