Да ведь когда я явлюсь олицетворением в сервисе WCF, может мой сервис не загружать Систему. Транзакции, когда я пытаюсь выполнить LINQ к SQL-запросу?

Попробуйте добавить type="text/javascript"

, как показано ниже:

`<script type="text/javascript" src="{{  url_for('static', filename='js/responsivevoice.js') }}"> . 
</script>` 
8
задан Simon 10 November 2008 в 13:47
поделиться

6 ответов

Если Вы хотите, чтобы SQL-запросы были выполнены как явленные олицетворением идентификационные данные, Вы, возможно, на самом деле должны включить делегацию своего SQL-сервера. Проверьте эту статью для большего количества информации:

http://msdn.microsoft.com/en-us/library/ms730088.aspx

3
ответ дан 5 December 2019 в 17:42
поделиться

Делает Ваш клиент WCF, устанавливает необходимый "позволенный уровень олицетворения":

<?xml version="1.0" encoding="utf-8" ?>
<configuration>
    <system.serviceModel>

        <!-- .... -->

        <behaviors>
           <endpointBehaviors>
              <behavior name="ImpersonationBehavior">
                 <clientCredentials>
                      <windows allowedImpersonationLevel="Impersonation" />
                 </clientCredentials>
              </behavior>
           </endpointBehaviors>
        </behaviors>
    </system.serviceModel>
</configuration>

По умолчанию это установлено на Идентификацию, если ничто не указано явно. Проверьте это сообщение в блоге для большего количества информации.

6
ответ дан 5 December 2019 в 17:42
поделиться

спасибо парни, я решил его путем чтения XML под объявлением:

[OperationBehavior(Impersonation:=ImpersonationOption.Required)]

это работало только, когда я считал XML непосредственно из Класса WCFService.

1
ответ дан 5 December 2019 в 17:42
поделиться

Хм... Я не знаю. Однако Вы могли вынудить dll загрузиться вначале. Так как Вы используете IIS, это, по-видимому, было бы в Вашем global.asax - что-то как создание и выбрасывание, TransactionScope должен сделать задание...

0
ответ дан 5 December 2019 в 17:42
поделиться

Игрение вокруг с этим еще немного, самое легкое решение для IIS разместило сервисы, должно выполнить Ваш Пул приложений с идентификационными данными пользователя домена, который имеет необходимые полномочия. Существуют, вероятно, проблемы с этим с точки зрения безопасности, но в наших целях это достаточно хорошо. Мы можем ограничить полномочия, данные тому пользователю, но все работает, не имея необходимость входить в Kerberos, олицетворение, делегацию и тайны AD.

0
ответ дан 5 December 2019 в 17:42
поделиться

Спасибо, Хусейн. Я борюсь с этим последние полтора дня. Вот кое-что, что сэкономило бы мне массу времени. Надеюсь, это сэкономит время кому-то еще. У меня возникли проблемы с SQLConnection и олицетворением, когда доступ к реестру запрещен с использованием безопасности транспорта. Я пробовал даже использовать transportwithmessagecredential. Внутри procmon я получал "Bad Impersonation". Моя конфигурация В IIS 7 в виртуальном каталоге включена только проверка подлинности Windows, и я отключил проверку подлинности в режиме ядра. Основные настройки Я установил для него сквозную аутентификацию.

Конфигурация службы -

  <system.serviceModel>
    <serviceHostingEnvironment aspNetCompatibilityEnabled="false" />
    <services>
      <service behaviorConfiguration="SymitarService.ScheduleServiceBehavior" name="SymitarService.ScheduleService">
        <endpoint address="" binding="wsHttpBinding" bindingConfiguration="wsSecure" contract="SymitarService.IScheduleService">
          <identity>
            <dns value="localhost" />            
          </identity>
        </endpoint>
        <endpoint address="mex" binding="wsHttpBinding" bindingConfiguration="wsSecure" contract="IMetadataExchange" />
      </service>
    </services>
    <behaviors>
      <serviceBehaviors>
        <behavior name="SymitarService.UserDirectoryBehavior">
          <serviceMetadata httpGetEnabled="true" />
          <serviceDebug includeExceptionDetailInFaults="true" />
          <serviceAuthorization impersonateCallerForAllOperations="true" />
        </behavior>
        <behavior name="SymitarService.ScheduleServiceBehavior">
          <serviceMetadata httpGetEnabled="true" />
          <serviceDebug includeExceptionDetailInFaults="true" />
          <serviceAuthorization impersonateCallerForAllOperations="true" />
        </behavior>
      </serviceBehaviors>
    </behaviors>
    <bindings>
      <netTcpBinding>
        <binding name="tcpSecure" portSharingEnabled="true" />
      </netTcpBinding>
      <wsHttpBinding>
        <binding name="wsSecure" allowCookies="true">
          <security mode="Transport">
            <transport clientCredentialType="Windows" proxyCredentialType="Windows" />
            <message clientCredentialType="Windows" negotiateServiceCredential="true" />
          </security>
        </binding>
      </wsHttpBinding>
      <mexTcpBinding>
        <binding name="mexSecure" />
      </mexTcpBinding>
    </bindings>
  </system.serviceModel>

и клиент

<system.serviceModel>
    <bindings>
        <wsHttpBinding>
            <binding name="WSHttpBinding_IScheduleService" closeTimeout="01:00:00" openTimeout="01:00:00" receiveTimeout="01:00:00" sendTimeout="01:00:00" bypassProxyOnLocal="false" transactionFlow="false" hostNameComparisonMode="StrongWildcard" maxBufferPoolSize="524288" maxReceivedMessageSize="65536" useDefaultWebProxy="true" allowCookies="true">
          <readerQuotas maxDepth="32" maxStringContentLength="8192" maxArrayLength="16384" maxBytesPerRead="4096" maxNameTableCharCount="16384" />
          <reliableSession ordered="true" inactivityTimeout="00:20:00" enabled="false" />
          <security mode="Transport">
            <transport clientCredentialType="Windows" proxyCredentialType="Windows" realm="" />
            <message clientCredentialType="Windows" negotiateServiceCredential="true" establishSecurityContext="true" />
          </security>
        </binding>
      </wsHttpBinding>
    </bindings>
    <behaviors>
      <endpointBehaviors>
        <behavior name="ImpersonationBehavior">
          <clientCredentials>
            <windows allowedImpersonationLevel="Impersonation" allowNtlm="true"/>
          </clientCredentials>
        </behavior>
      </endpointBehaviors>
    </behaviors>
    <client>
      <endpoint address="https://server:444/SymitarService/ScheduleService.svc" 
                binding="wsHttpBinding" 
                bindingConfiguration="WSHttpBinding_IScheduleService" 
                contract="Symitar.ScheduleService.IScheduleService" 
                name="WSHttpBinding_IScheduleService"
                behaviorConfiguration="ImpersonationBehavior"
                >
        <identity>
          <dns value="localhost" />
        </identity>
      </endpoint>
    </client>
  </system.serviceModel>
0
ответ дан 5 December 2019 в 17:42
поделиться
Другие вопросы по тегам:

Похожие вопросы: