Сохранение сетевых учетных данных в диспетчере учетных данных для разных пользователей

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

(Причина в том, что у меня есть две учетные записи пользователей на моем компьютере. Одна из моих служб работает под одной конкретной учетной записью пользователя. Мое приложение пользовательского интерфейса работает под другой учетной записью пользователя. Из пользовательского интерфейса я пытаюсь сохранить учетные данные для доступа к сети. Но служба не может получить доступ к сетевому диску, так как работает под другой учетной записью пользователя)


person WPF Learner    schedule 02.06.2014    source источник
comment
Диспетчер учетных данных — это элемент для каждого пользователя; он не предназначен для совместного использования несколькими пользователями. Вы должны создать канал для связи между пользовательским интерфейсом и службой, чтобы служба могла сама сохранять учетные данные. (возможным другим решением этой проблемы является запуск службы от имени того же пользователя, что и пользовательский интерфейс).   -  person Petesh    schedule 02.06.2014


Ответы (1)


Вы можете выполнить олицетворение для доступа к диску. Найдите процесс проводника, запущенный в другой учетной записи пользователя, и получите его токен процесса. Создайте новый поток в своей службе и используйте API SetThreadToken, чтобы установить маркер проводника для вашего потока. Этот поток теперь будет работать в другой учетной записи пользователя и может получить доступ к сетевому диску.

person dvasanth    schedule 03.06.2014