Сбой ссылок на DLL с «Отказано в доступе» при использовании олицетворения для пользователя Windows NON-Local-Admin - PullRequest
0 голосов
/ 19 марта 2009

У нас есть сервис, использующий WCF и Олицетворение.

Пользователь может войти в клиентское приложение с учетными данными, которые являются частью системы Active Directory.

Логин пользователя является олицетворением сервисной стороны.

Это прекрасно работает, когда пользователь, вошедший в систему, настроен как локальный администратор на хост-компьютере.

Но проблема возникает, когда они непривилегированный (стандартный) пользователь. Мы получаем исключение, указывающее на отказ в доступе "Одна из наших библиотек DLL". (Это происходит на всех наших DLL)

1 Ответ

0 голосов
/ 25 июня 2009

На самом деле это была простая проблема с разрешениями в среде развертывания.

Использование инструмента политики безопасности доступа к коду (Caspol.exe) Это всего лишь вопрос применения правильных разрешений. На msdn .

есть руководство по использованию.

Фактическая строка командной строки была

CasPol.exe -addgroup 1 -strong -file D: \ deploy_location \ WcfServiceHost.exe -noname -noversion FullTrust

Это было выполнено для набора услуг. Поскольку номера наших версий часто менялись с помощью «noversion», сервис также требовал FullTrust в наших настройках.

Чтобы повторно использовать исправление для различных компьютеров, создайте сценарий PowerShell (или пакетный файл) и с помощью параметра 'polchgprompt' отключите запросы, чтобы сценарий мог выполняться без вмешательства.

polchgprompt - «Включает или отключает приглашение, отображаемое при каждом запуске Caspol.exe с использованием параметра, который может вызвать изменения политики.»

Структура скрипта:

CasPol.exe -polchgprompt off

--all the individual service calls--
CasPol.exe -addgroup 1 -strong -file D:\deployment_location\WcfServiceHost.exe -noname -noversion FullTrust
...

CasPol.exe -polchgprompt on
...