USUÁRIO:      SENHA:        SALVAR LOGIN ?    Adicione o VBWEB na sua lista de favoritos   Fale conosco 

 

  Dicas

  Visual Basic    (Windows)

Título da Dica:  Validar um login de usuário no Sistema Operacional
Postada em 9/9/2003 por Ð@®l@n            
O sistema operacional disponibiliza, na forma de API's, diversos serviços para serem utilizados pelas aplicações, entre eles a própria autenticação de usuários no sistema operacional.

Para utilizar essa API é necessário que o usuário que estiver executando este código tenha o privilégio Act as part of the operating system , por causa disso esse código não deve, em geral, ser inserido como para de um client VB, mas deve sim ser criado um componente para executar esse código.

Inserindo este componente no COM+, pode-se determinar que este componente rode com a identidade de um usuário específico, este sim com as permissões necessárias para utilizar esta API.

É importante ainda destacar que deve-se ter muito cuidado ao se criar algo como um login. O processo de login do sistema operacional é cuidadosamente planejado para evitar invasões. Ao criar um processo de login alternativo você corre o risco de deixar brechas de segurança.

Eis o código :

Declarações a serem inseridas em um módulo :


Option Explicit

Public Const LOGON32_LOGON_INTERACTIVE = 2
Public Const LOGON32_LOGON_BATCH = 4
Public Const LOGON32_LOGON_SERVICE = 5
Public Const LOGON32_PROVIDER_DEFAULT = 0



Declare Function LogonUser Lib "advapi32" Alias "LogonUserA" _
(ByVal lpszUsername As String, ByVal lpszDomain As String, _
ByVal lpszPassword As String, ByVal dwLogonType As Long, _
ByVal dwLogonProvider As Long, phToken As Long) As Long

Declare Function CloseHandle Lib "kernel32" _
(ByVal hObject As Long) As Long


Código de exemplo da chamada desta API :


Private Sub cmdlogin_Click()
Dim lStatus As Long
Dim TokenHandle As Long

lStatus = LogonUser(txtuser.Text, txtdomain.Text, txtpassword.Text, LOGON32_LOGON_INTERACTIVE, LOGON32_PROVIDER_DEFAULT, TokenHandle)
If lStatus Then
lStatus = CloseHandle(TokenHandle)
MsgBox "Login Successful", , "Valid User"
Else
MsgBox "Login Failed", , "Invalid User/Password"
End If
End Sub
 


CyberWEB Network Ltda.    © Copyright 2000-2020   -   Todos os direitos reservados.
Powered by HostingZone - A melhor hospedagem para seu site
Topo da página