Мне нужен доступ к файлу с сетевого диска с пользователем, который может отсутствовать в домене.
Мой текущий код:
private async Task GetUxVersionsFromServer()
{
string path = @$"\\{IpAddress}\...\...\...";
if(!await GetFiles(path))
{
using (UNCAccessWithCredentials unc = new UNCAccessWithCredentials())
{
bool retry = true;
do
{
(var ok, var username, var password) = _dialogService.ShowPasswordInput();
if (ok)
{
if (unc.NetUseWithCredentials(path, username, "domain", password))
{
await GetFiles(path);
retry = false;
}
}
else
{
retry = false;
}
} while (retry);
}
}
}
private async Task<bool> GetFiles(string path)
{
try
{
var zipFiles = await Task.FromResult(System.IO.Directory.GetFiles(path, "VERSION*.zip"));
Versions = new ObservableCollection<string>(zipFiles);
return true;
}
catch (IOException)
{
return false;
}
}
Я использую класс UNCAccessWithCredential
из здесь
Работает нормально.
Если пользователь имеет доступ к каталогу, ввод пароля не должен отображаться. Единственная проблема заключается в том, что я не могу проверить, есть ли у пользователя Windows доступ к каталогу, без перехвата исключения.
Можно ли сделать запрос, если вошедший в систему пользователь Windows имеет доступ к сетевому каталогу или нет?
Есть ли способ запроса, если вошедший в систему пользователь Windows находится в домене?