LOGAR NOT ACTIVE DIRECTORY AUTENTICAR VBNET
Olá Amigos,
preciso logar no Active Directory e conceder acesso a uma pasta ao usuario do sistema ( no caso o proprio sistema em vbNET se encarregará de copiar para esta pasta no Win Server 2003 os arquivos)
em minhas pesquisas peguei diversos peojetos que logan no AD porem menhum me concedeu acesso para copiar, mover arquivo nesta pasta.
alguem tem alguma ideia de como posso resolver esta questão?
desde já agradeço.
preciso logar no Active Directory e conceder acesso a uma pasta ao usuario do sistema ( no caso o proprio sistema em vbNET se encarregará de copiar para esta pasta no Win Server 2003 os arquivos)
em minhas pesquisas peguei diversos peojetos que logan no AD porem menhum me concedeu acesso para copiar, mover arquivo nesta pasta.
alguem tem alguma ideia de como posso resolver esta questão?
desde já agradeço.
ninguem tem ideia?
só falta isso para eu colocar meu primeiro projeto em vbnet pra rodar.
só falta isso para eu colocar meu primeiro projeto em vbnet pra rodar.
to vendo que realmente é impossivel logar na rede com vb... no Vb6 eu tenho um rotina que faz isso... mas em vbnet ela não funciona... testei mil outras possiveis soluçoes e nenhum resolveu...
creio que migrar pra .net não é a melhor solução!
creio que migrar pra .net não é a melhor solução!
De um olhada em algum desses exemplos
Active Directory
Active Directory
Oi Foxman, obrigado.... esses ai eu testei todos.... eu consigio obter dados do servidor, lista de computadores, lista de usuarios... e um porção de informaçoes do AD.
algum de autenticar até voltam com informão de autenticado com sucesso.... mas não concede acesso a pasta.
não sei mais oque fazer.
no Bom e Velho VB6 eu uso essa rotina aqui. http://www.codelines.com/portugues0/clsconnx.htm , funciona perfeitamente... eu chequi a rodas a mesma no VBnet.. mas sem sucesso...
algum de autenticar até voltam com informão de autenticado com sucesso.... mas não concede acesso a pasta.
não sei mais oque fazer.
no Bom e Velho VB6 eu uso essa rotina aqui. http://www.codelines.com/portugues0/clsconnx.htm , funciona perfeitamente... eu chequi a rodas a mesma no VBnet.. mas sem sucesso...
LVfiorot, Obrigado pela dica...
o Runas faz o sistema rodar como administrador.. mas não encontrei nada que o faça logar na Rede.
eu preico que o sistema em .NET logue na rede WInServer2003 e tenha acesso a uma pasta.
ainda na procura de uma solução.
o Runas faz o sistema rodar como administrador.. mas não encontrei nada que o faça logar na Rede.
eu preico que o sistema em .NET logue na rede WInServer2003 e tenha acesso a uma pasta.
ainda na procura de uma solução.
Imports System
Imports System.Security.Permissions
Imports System.DirectoryServices
Imports System.DirectoryServices.ActiveDirectory
Imports System.IO
Imports Microsoft.VisualBasic.FileIO
Public Class Form1
Dim _path As String
Dim _filterAttribute As String
Public Function Logim_AD(ByVal domain As String, ByVal username As String, ByVal pwd As String) As Boolean
Dim domainAndUsername As String = domain & [Ô]\[Ô] & username
Dim entry As DirectoryEntry = New DirectoryEntry(_path, domainAndUsername, pwd)
Try
[ô]Bind to the native AdsObject to force authentication.
Dim obj As Object = entry.NativeObject
Dim search As DirectorySearcher = New DirectorySearcher(entry)
search.Filter = [Ô](SAMAccountName=[Ô] & username & [Ô])[Ô]
search.PropertiesToLoad.Add([Ô]cn[Ô])
Dim result As SearchResult = search.FindOne()
If (result Is Nothing) Then
Return False
End If
[ô]Update the new path to the user in the directory.
_path = result.Path
_filterAttribute = CType(result.Properties([Ô]cn[Ô])(0), String)
[ô]Dim ldapConnection As DirectoryEntry = New DirectoryEntry([Ô]\\servidor\maxcontrol[Ô])
entry.Path = result.Path
entry.AuthenticationType = AuthenticationTypes.Secure
Return True
Catch ex As Exception
MessageBox.Show([Ô]ImpossÃvel autenticar usuário [Ô] & ex.Message)
Return False
End Try
Return True
End Function
Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
_path = [Ô]LDAP://coreplas[Ô]
If Logim_AD([Ô]Coreplas[Ô], [Ô]Administrador[Ô], [Ô]core8422[Ô]) Then
Console.WriteLine(_path)
Console.WriteLine(_filterAttribute)
MsgBox([Ô]Autenticado![Ô])
Transfere_Arquivo()
End If
End Sub
Private Sub Transfere_Arquivo()
Dim Origem As String = [Ô]\\192.168.0.2\Maxcontrol\update.txt[Ô]
Dim Destino As String = [Ô]C:\mxc\update.txt[Ô]
If Not File.Exists(Origem) Then
MsgBox([Ô]Não encontrado![Ô])
Else
My.Computer.FileSystem.CopyFile(Origem, Destino, UIOption.AllDialogs)
End If
End Sub
End Class
[ô]---------------------------------------------------------
o Código acima loga e retorna como True, porem ao chamar o transfere arquivo,a pasta não ta liberada.
testei tbm rotinas com o RunAS.. mas não consegui faze-lo rodar.
Imports System.Security.Permissions
Imports System.DirectoryServices
Imports System.DirectoryServices.ActiveDirectory
Imports System.IO
Imports Microsoft.VisualBasic.FileIO
Public Class Form1
Dim _path As String
Dim _filterAttribute As String
Public Function Logim_AD(ByVal domain As String, ByVal username As String, ByVal pwd As String) As Boolean
Dim domainAndUsername As String = domain & [Ô]\[Ô] & username
Dim entry As DirectoryEntry = New DirectoryEntry(_path, domainAndUsername, pwd)
Try
[ô]Bind to the native AdsObject to force authentication.
Dim obj As Object = entry.NativeObject
Dim search As DirectorySearcher = New DirectorySearcher(entry)
search.Filter = [Ô](SAMAccountName=[Ô] & username & [Ô])[Ô]
search.PropertiesToLoad.Add([Ô]cn[Ô])
Dim result As SearchResult = search.FindOne()
If (result Is Nothing) Then
Return False
End If
[ô]Update the new path to the user in the directory.
_path = result.Path
_filterAttribute = CType(result.Properties([Ô]cn[Ô])(0), String)
[ô]Dim ldapConnection As DirectoryEntry = New DirectoryEntry([Ô]\\servidor\maxcontrol[Ô])
entry.Path = result.Path
entry.AuthenticationType = AuthenticationTypes.Secure
Return True
Catch ex As Exception
MessageBox.Show([Ô]ImpossÃvel autenticar usuário [Ô] & ex.Message)
Return False
End Try
Return True
End Function
Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
_path = [Ô]LDAP://coreplas[Ô]
If Logim_AD([Ô]Coreplas[Ô], [Ô]Administrador[Ô], [Ô]core8422[Ô]) Then
Console.WriteLine(_path)
Console.WriteLine(_filterAttribute)
MsgBox([Ô]Autenticado![Ô])
Transfere_Arquivo()
End If
End Sub
Private Sub Transfere_Arquivo()
Dim Origem As String = [Ô]\\192.168.0.2\Maxcontrol\update.txt[Ô]
Dim Destino As String = [Ô]C:\mxc\update.txt[Ô]
If Not File.Exists(Origem) Then
MsgBox([Ô]Não encontrado![Ô])
Else
My.Computer.FileSystem.CopyFile(Origem, Destino, UIOption.AllDialogs)
End If
End Sub
End Class
[ô]---------------------------------------------------------
o Código acima loga e retorna como True, porem ao chamar o transfere arquivo,a pasta não ta liberada.
testei tbm rotinas com o RunAS.. mas não consegui faze-lo rodar.
Tópico encerrado , respostas não são mais permitidas