Я должен подключить сетевой диск из приложения.NET. Я испытываю необходимость для использования AD Имени пользователя и Пароля для аутентификации. Обычно я просто использую пакетный файл с net use
команда. Как я делаю это из кода VB.NET или C#?
Вы смотрели на это?
http://www.codeguru.com/csharp/csharp/cs_network/windowsservices/article.php/c12357
Кроме того, вы могли бы просто используйте net.exe через Process.Start ()
и передайте ему параметры, которые вы всегда использовали в приведенном ниже коде:
System.Diagnostics.Process.Start("net.exe", "use K: \\\\Server\\URI\\path\\here");
Это также можно использовать без буквы диска, а затем получить доступ через UNC-путь .
System.Diagnostics.Process.Start("net.exe", @"use @"\\Server\URI\path\here");
System.IO.File.Copy(@"\\Server\URI\path\here\somefile.abc", destFile, true);
Вот код, который, по вашему мнению, будет более надежным, чем простая обработка консоли.
''' <summary>
'''
''' </summary>
''' <param name="driveLetter"></param>
''' <param name="uncName"></param>
''' <remarks>This was hand tested. We cannot automate because it messes with the OS</remarks>
Sub MapDrive(ByVal driveLetter As Char, ByVal uncName As String)
Dim driveLetterFixed = Char.ToLower(driveLetter)
If driveLetterFixed < "a"c OrElse driveLetterFixed > "z"c Then Throw New ArgumentOutOfRangeException("driveLetter")
If uncName Is Nothing Then Throw New ArgumentNullException("uncName")
If uncName = "" Then Throw New ArgumentException("uncName cannot be empty", "uncName")
Dim fixedUncName As String = uncName
'This won't work if the unc name ends with a \
If fixedUncName.EndsWith("\") Then fixedUncName = fixedUncName.Substring(0, fixedUncName.Length - 1)
Dim oNetWork As New IWshRuntimeLibrary.IWshNetwork_Class
Try 'This usually isn't necessary, but we can't detect when it is needed.
oNetWork.RemoveNetworkDrive(driveLetter, True, True)
Catch ex As Runtime.InteropServices.COMException
'Ignore errors, it just means it wasn't necessary
End Try
oNetWork.MapNetworkDrive(driveLetter, fixedUncName, True)
End Sub
http://clrextensions.codeplex.com/SourceControl/changeset/view/55677#666894