Проблема с олицетворением конкретного пользователя в службе WCF - PullRequest
0 голосов
/ 27 октября 2009

У меня есть WCF служба, размещенная в IIS на WindowsServer 2008. Эта служба должна выполнять запись в общую папку на другом компьютере (Windows XP). Общая папка имеет права на запись для конкретного пользователя, скажем «X», который присутствует как на компьютерах, т.е. на сервере, где работает служба, так и на компьютере, на котором находится общая папка.

Сервис работает под учетной записью NETWORK SERVICE. Чтобы служба получила доступ к общей папке, я добавил код для олицетворения пользователя «X» в службе, чтобы он получил разрешение на запись в общую папку.

Поскольку я хочу выдать себя за пользователя "X" только при запуске определенного раздела кода, я использовал пример code .

Даже после олицетворения службе иногда не удается записать в общую папку. Это работает спорадически.

Принимая во внимание, что если я добавлю тег в файл Web.config, он будет работать отлично.

<identity impersonate="true" userName="accountname" password="password" />

Но вышесказанное нежелательно, поскольку оно олицетворяет конкретного пользователя для всех запросов. Мне нужно выдать себя за конкретного пользователя, только когда я запускаю определенный раздел кода.

Кроме того, код олицетворения работает абсолютно нормально, когда общая папка присутствует на другой WindowsServer 2008.

Может ли кто-нибудь дать мне идеи о том, что здесь происходит не так.

1 Ответ

0 голосов
/ 08 июня 2010

Прочитайте эту статью:

http://www.west -wind.com / блог / сообщений / 1572.aspx

Вы можете применять его везде

...