2008-11-26 5 views
8

मुझे किसी एक्सेस 97 डेटाबेस तक पहुंच प्राप्त करने के लिए नेटवर्क पर पासवर्ड सुरक्षित साझा फ़ोल्डर खोलने की आवश्यकता है। मैं फ़ोल्डर कैसे खोलूं और पासवर्ड में कैसे पास करूं?VB.NET का उपयोग कर पासवर्ड सुरक्षित साझा नेटवर्क फ़ोल्डर कैसे खोलें?

उत्तर

6

यहाँ 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

बॉक्स के ठीक बाहर, पूरी तरह से काम किया। लिंक से कोड का उपयोग किया गया क्योंकि इसे काटने और चिपकाने के दौरान बेहतर बनाया गया था। – user38349

3

एक समाधान नेटवर्क फ़ोल्डर को एक उपलब्ध ड्राइव अक्षर पर मैप करना होगा। आप को पूरा कर सकते है कि Windows OS का उपयोग कर आदेशों:

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

आप यूज़रनेम और पासवर्ड क्रेडेंशियल्स आप की जरूरत के साथ बदलें और यह सुनिश्चित करें ड्राइव अक्षर उपलब्ध है।

डिस्कनेक्ट करने के लिए आप कॉल कर सकते हैं

System.Diagnostics.Process.Start("net.exe", "use /delete K:") 
+0

पाया मेरे मामले में यह एक अभियान का नाम निर्दिष्ट करने के बिना इस आदेश जारी करने के लिए पर्याप्त था 'Process.Start (" net.exe " , "\\ सर्वर \ URI \ path \ here/USER: ") का उपयोग करें। और फिर इस पथ तक पहुंचने के बाद के किसी भी प्रयास से प्रमाण-पत्र नहीं मिलेगा। – Monsignor