GetUserFromSID
Função: GetUserFromSID
Recupera o nome do domínio e nome do usuário a partir de um código no padrão SID (Security Identifier) da Microsoft que os representa.
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.
GetUserFromSID ( < cSID >, < cDomainName >, < cUserName > ) --> lValid
Nome | Tipo | Descrição | Obrigatório | Referência |
---|---|---|---|---|
cSID | Caracter | Código SID do usuário autenticado na estação. Pode ser obtido com a função GetCredential(). | X | |
cDomainName | Caracter | Será preenchido pela função após ser invocada. Conterá o nome do domínio extraído do código SID. | X | |
cUserName | Caracter | Será preenchido pela função após ser invocada. Conterá o nome do usuário extraído do código SID. | X | |
lFullDomain | Logico | Parametro opcional para captura do dominio. Se for .F. irá trazer o dominio até o primeiro ponto, caso contrario trará todo nome do dominio. Observação : Esse novo parametro está disponível a partir do AppServer 20.3.0.9 e SmartClient 20.3.0.3 |
- Retorna verdadeiro (.T.) se a obtenção dos nomes de domínio e usuário foi realizada com sucesso, caso contrário, falso (.F.).
- 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.
- O Security Identifier (SID), representado por uma string de caracteres, pode ser resgatado do usuário autenticado na estação através da função GetCredential().
- Essa função está disponível em builds superiores à 7.00.120420A
#include "TOTVS.CH"
User Function GetUserFromSID()
DEFINE DIALOG oDlg TITLE "Exemplo GetUserFromSID" FROM 180,180 TO 450,600 PIXEL
cTGetDomain := space(40)
cTGetUser := 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,,,,)
oTButtonGetUser := TButton():New( 63, 01, "Obter Credenciais",oDlg,{|| GetUserFromSID(GetCredential(), @cTGetDomain, @cTGetUser) },96,10,,,.F.,.T.,.F.,,.F.,,,.F. )
ACTIVATE DIALOG oDlg CENTERED
return