How to open a password protected shared network folder using VB.NET?

后端 未结 2 2112
不知归路
不知归路 2021-02-15 13:47

I need to open a password protected shared folder on a network to gain access to an Access 97 database. How do I open the folder and pass in the password?

相关标签:
2条回答
  • 2021-02-15 14:17

    one solution would be to map the network folder to an available drive letter. You could accomplish that using Windows OS commands:

    System.Diagnostics.Process.Start("net.exe", "use K: \\Server\URI\path\here /USER:<username> <password>" )
    

    Simply replace the username and password with the credentials you need and make sure the drive letter is available.

    To disconnect you can call

    System.Diagnostics.Process.Start("net.exe", "use /delete K:" )
    
    0 讨论(0)
  • 2021-02-15 14:27

    found here http://www.mredkj.com/vbnet/vbnetmapdrive.html

    Public Declare Function WNetAddConnection2 Lib "mpr.dll" Alias "WNetAddConnection2A" _
    ( ByRef lpNetResource As NETRESOURCE, ByVal lpPassword As String, _
      ByVal lpUserName As String, ByVal dwFlags As Integer) As Integer
    
     Public Declare Function WNetCancelConnection2 Lib "mpr" Alias   "WNetCancelConnection2A" _
        (ByVal lpName As String, ByVal dwFlags As Integer, ByVal fForce As Integer) As Integer
    
        <StructLayout(LayoutKind.Sequential)> _
    Public Structure NETRESOURCE
            Public dwScope As Integer
            Public dwType As Integer
            Public dwDisplayType As Integer
            Public dwUsage As Integer
            Public lpLocalName As String
            Public lpRemoteName As String
            Public lpComment As String
            Public lpProvider As String
        End Structure
    
    Public Const ForceDisconnect As Integer = 1
    Public Const RESOURCETYPE_DISK As Long = &H1
    
    Public Function MapDrive(ByVal DriveLetter As String, ByVal UNCPath As String) As Boolean
    
            Dim nr As NETRESOURCE
            Dim strUsername As String
            Dim strPassword As String
    
            nr = New NETRESOURCE
            nr.lpRemoteName = UNCPath
            nr.lpLocalName = DriveLetter & ":"
            strUsername = Nothing '(add parameters to pass this if necessary)
            strPassword = Nothing '(add parameters to pass this if necessary)
            nr.dwType = RESOURCETYPE_DISK
    
            Dim result As Integer
            result = WNetAddConnection2(nr, strPassword, strUsername, 0)
    
            If result = 0 Then
                Return True
            Else
                Return False
            End If
        End Function
    
    Public Function UnMapDrive(ByVal DriveLetter As String) As Boolean
        Dim rc As Integer
            rc = WNetCancelConnection2(DriveLetter & ":", 0, ForceDisconnect)
    
            If rc = 0 Then
                Return True
            Else
                Return False
            End If
    
        End Function
    
    0 讨论(0)
提交回复
热议问题