Подключение к сетевому диску от имени другого пользователя без предоставления пароля в виде обычного текста - PullRequest
0 голосов
/ 21 мая 2019

У меня есть программа, которая подключается к сетевому диску от имени другого пользователя, предоставляя имя пользователя и пароль в виде простого текста в качестве аргументов.

Теперь я обеспокоен тем, что предоставление пароля в виде простого текста - это небезопасный способ обработки данных, и я ищу способ предоставить пароль безопасным способом.

Я думал, что простым решением было бы запустить net.exe как процесс и просто ввести вместо него пароль. Но, к сожалению, у меня это не сработало.

Вот то, что у меня сейчас есть, оно работает, но с использованием простого текстового пароля.

Process proc = new Process();
proc.StartInfo.FileName = "net.exe";
proc.StartInfo.UseShellExecute = false;
proc.StartInfo.CreateNoWindow = true;


proc.StartInfo.Arguments = $@"use \\{hostName} /user:{DomainName}\{UserName} {LoginCredentials.Decrypt(Credentials.EncryptedPassword)} /persistent:no";




proc.Start();
proc.WaitForExit();

string remoteDirectory = $@"\\{hostName}\{path}";

if (System.IO.Directory.Exists(remoteDirectory))
{
   Process.Start("explorer.exe", remoteDirectory);
}

else
{
  StatusInfoController.Error($"Failed to connect to {path} on host {hostName}. Missing permissions?");
}

Этот код работает нормально. Я просто хотел, чтобы не указывать пароль в виде обычного текста.

Я попытался дать пароль процессу, например, так:

proc.StartInfo.Domain = MainUI.CaaCredentials.DomainNameShort;
proc.StartInfo.UserName = MainUI.CaaCredentials.UserName;
proc.StartInfo.Password = MainUI.CaaCredentials.SecurePassword;

Любая помощь очень ценится. Спасибо!

...