Árvore de páginas

Versões comparadas

Chave

  • Esta linha foi adicionada.
  • Esta linha foi removida.
  • A formatação mudou.
Comentário: Incluindo observação sobre entrada no arquivo de log
Composition Setup
import.css=/download/attachments/3279126062824/newLayouttecnologia.css
Portuguese

Pagetitle

...

ADUserValid

...

ADUserValid

Faz a autenticação de uma conta de usuário de um domínio baseado no Active Directory do Microsoft Windows.

ADUserValid ( < cDomainName >, < cUserName >, < cPassword > ) --> lValid

A chamada desta função atende a dois cenários distintos, conforme descrito a seguir: 

Cená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 GetCredential()
Parâmetros/Elementos
Aviso
title
Importante

Esta função suporta apenas o Active Directory, não possui suporte ao Active Directory Federation Services.

🚨 Para uso de outros IDP (Identity provider) é necessário o Identity.

Abaixo mais detalhes sobre estes serviços:

O Active Directory ou AD é uma implementação da Microsoft de serviço de diretório no protocolo LDAP que armazena informações sobre objetos em rede de computadores e disponibiliza essas informações a usuários e administradores desta rede.

O Active Directory Federation Services ou ADFS é um provedor de identidade (IDP) fornecido pela Microsoft que funciona como um intermediário a um serviço ou domínio externo e permite a consulta e uso das credenciais existentes do Active Directory.

Sintaxe

Bloco de código
collapsefalse
ADUserValid( < cDomainName >, < cUserName >, < cPassword > )

Parâmetros

Nome

Tipo

Descrição

Obrigatório

Referência

cDomainName

...

caractere

Cenário 1: Nome do domínio no qual encontra-se a estação.

...

Cenário 2: Código SID do usuário autenticado na estação.

X


cUserName

...

caractere

Cenário 1: Nome do usuário pertencente ao domínio informado.

...

Cenário 2: String vazia, obrigatoriamente.

X


cPassword

...

caractere

Ambos os cenários: Senha do usuário informado.

X


Retorno

...

Nome

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.).

Informações
icontrue
titleObservaçõ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
  • : LogonUserA e ConvertStringSidToSidA da API. Consulte os links disponibilizados para conhecer os detalhes e requisitos de plataforma na base de documentação da Microsoft
:
  • .
  • A partir da versão SmartClient 20.3.0.4 ou AppServer versão 20.3.0.11, caso a camada da Microsoft gere um erro no processo de autenticação, será incluída uma entrada no arquivo de log (totvssmartclient.log para autenticação no lado cliente ou console.log no lado servidor) contendo o código e mensagem de erro gerados.

Exemplos

Bloco de código
languagecpp
themeEclipse
linenumberstrue
collapsefalse
  

Exemplos

#include "TOTVS.CH"


  User Function ADUserValid()


    DEFINE DIALOG oDlg TITLE "Exemplo ADUserValid" FROM 180,180 TO 450,600 PIXEL


      cTGetDomain := space(
40)
256)
      cTGetUser := space(40)


      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

return

Abrangência

Protheus 10 , TOTVS Application Server 10 , ByYou Application Server

  Return

Veja também