Подключение к базе данных в WCF с использованием выделенной системной учетной записи, хранящейся в реестре сервера IIS
У меня есть проект службы WCF, который подключается к серверу SQL Server 2008 для выполнения операций, таких как вставка, обновление, удаление и выбор В IIS я хочу, чтобы подключение к серверу sql осуществлялось с использованием выделенной системной учетной записи, которая хранится в реестре сервера. Я использую следующий код в моем WCF web.config, чтобы получить ID пользователя и пароль из реестра сервера.
<System.web>
<identity impersonate="true" userName="registry:HKLM\SOFTWARE\MY_SECURE_APP\acctopsmain\ASPNET_SETREG,userName" password="registry:HKLM\SOFTWARE\MY_SECURE_APP\acctopsmain\ASPNET_SETREG,password" />
</system.web>
Я получаю сообщение об ошибке входа в систему для сообщения об ошибке "Домен \ имя_сервера"
Уровень аутентификации на сервере IIS - анонимная аутентификация.
Любая помощь будет оценена. Спасибо, йог
1 ответ
Я не знаю, является ли это хорошим подходом или нет, однако я использовал следующие шаги, чтобы решить мою проблему.
<system.serviceModel>
<serviceHostingEnvironment aspNetCompatibilityEnabled="True">
</serviceHostingEnvironment>
<services>
<service name="Service" behaviorConfiguration="ServiceBehavior">
<endpoint address="" binding="basicHttpBinding" contract="IService">
</endpoint>
<endpoint address="mex" binding="mexHttpBinding" contract="IMetadataExchange"/>
</service>
</services>
<behaviors>
<serviceBehaviors>
<behavior name="ServiceBehavior">
........some othere setting
</behavior>
</serviceBehaviors>
</behaviors>
</system.serviceModel>
Добавить я под system.web я использую следующий код
<system.web>
<authorization>
<allow users="?"/>
</authorization>
<identity impersonate="true" userName="registry:HKLM\SOFTWARE\MY_SECURE_APP\acctopsmain\ASPNET_SETREG,userName" password="registry:HKLM\SOFTWARE\MY_SECURE_APP\acctopsmain\ASPNET_SETREG,password" />
</system.web>
на классе Service.vb я добавил
<AspNetCompatibilityRequirements(RequirementsMode:=AspNetCompatibilityRequirementsMode.Required)> _
Public Class Service Implements IService