У меня две машины, мы будем называть их машиной A и машиной B. В машине B работает служба Windows, написанная на С#.net, в качестве учетной записи Local System. Машина A сообщает службе B машины (используя WCF), чтобы открыть файл, расположенный в сети. Поскольку локальная система не является сетевым пользователем, она не имеет доступа к сетевым файлам и не может открыть файл. В настоящее время я читаю файлы с машины A и сериализую их как строки на машину B, а затем записываю их локально на B. Я рассмотрел возможность создания общей сетевой учетной записи для машины B, поэтому она может иметь доступ к сети, однако это нежелательно. Есть ли способ, которым я могу открыть открытые файлы машины B, используя учетную запись пользователя машины A? Я взглянул на классы идентификации подлинности системы безопасности, будет ли это случай использовать их?
MSDN - Как: олицетворять клиента на службе
Выдача себя за клиента в Windows Служба связи (WCF) позволяет службе выполнять действия от имени клиента. Для действий с учетом списка контроля доступа (ACL) проверки, такие как доступ к каталогам и файлы на машине или доступ к База данных SQL Server, проверка ACL против учетной записи пользователя клиента
Также не забудьте настроить службу для использования проверки подлинности Windows и использовать поддерживаемое связывание.