Проблемы с олицетворенным обслуживанием и сетевыми местоположениями - PullRequest
0 голосов
/ 10 сентября 2018

У меня есть служба Windows, которая опрашивает выбранный пользователем каталог на наличие новых файлов. Когда выбрано сетевое расположение (папка на удаленном компьютере в той же сети), я запрашиваю у пользователя имя пользователя и пароль удаленного компьютера.(пользователь, имеющий доступ к папке), я проверяю его и сохраняю в реестре для службы. Этот подход работает нормально (s ervice работает как localmachine и использует код олицетворения ).

Но есть некоторые сценарии, о которых я не знаю ..

1. Беспроводные жесткие диски / устройства хранения данных, которые напрямую подключены к сети. В настоящее время я использую код олицетворения для предоставления учетных данных пользователя. В таких случаях диск будет напрямую доступен для службы, работающей как localmachine?

2. Как обращаться с пользователями домена, у которых есть доступ к папке?

Я использую следующий код для олицетворения пользователя

https://stackoverflow.com/a/9213965/848968

UserImpersonation impersonator = new UserImpersonation();
impersonator.impersonateUser("username", "", "password"); //No Domain is required

Что делать в случае пользователей домена?

1 Ответ

0 голосов
/ 14 сентября 2018
  1. Беспроводные жесткие диски / устройства хранения, которые напрямую подключены к сети. В настоящее время я использую код олицетворения для предоставления учетных данных пользователя. В таких случаях диск будет напрямую доступен для службы, работающей в качестве локальной машины?

Как подключен привод?Если его SMB через пути UNC, это должно быть хорошо.Когда вы подключаетесь к подключенным дискам, они не доступны службе Windows.

Как обращаться с пользователями домена, у которых есть доступ к папке?

impersonator.impersonateUser("username", "domain", "password");

Возможно, вы также захотите проверить этот ответ для получения дополнительной информации о подражании и примера кода.Есть отличная библиотека, которая оборачивает это для вас.

...