Я работаю над сайтом, который был закодирован кем-то другим. Приложение содержит три слоя. Сайт, веб-сервис и библиотека. Веб-сервис предназначен для других приложений для вызова методов и всего остального. Веб-сайт используется работниками для выполнения запросов и всего остального.
Проблема в том, что веб-сайт использует веб-сервис, который использует библиотеку, вместо того, чтобы идти прямо в библиотеку. Я хочу удалить использование веб-службы и сразу использовать библиотеку. К сожалению, библиотека не может подключиться к внешнему серверу при вызове напрямую с веб-сайта.
Веб-сервис использовал метод олицетворения в своей веб-конфигурации следующим образом:
<?xml version="1.0"?>
<configuration>
<appSettings/>
<connectionStrings/>
<system.web>
<compilation defaultLanguage="c#" debug="true" />
<authorization>
<allow users="*" />
</authorization>
<authentication mode="Windows" />
<identity
impersonate="true"
userName="USERNAME_HERE"
password="PASSWORD_HERE" />
<sessionState
mode="InProc"
stateConnectionString="tcpip=10.96.8.37:42424"
sqlConnectionString="data source=10.96.8.37;Trusted_Connection=yes"
cookieless="false"
timeout="20" />
</system.web>
Когда веб-служба использует библиотеку, идентификатором библиотеки становится имя пользователя, указанное в файле web.config. Но когда я звоню с веб-сайта напрямую, пользователь оказывается: MY_COMPUTER \ ASPNET
Как я могу успешно подражать в самой библиотеке?
Спасибо!
EDIT
Хорошо, я подумал о добавлении имперсонального фрагмента кода в web.config веб-сайта. Оказалось, что библиотека использовала правильного пользователя, но запрос длится вечно и никогда не заканчивается. Вы знаете, что может быть не так?