SharePoint, WCF и анонимный доступ - PullRequest
1 голос
/ 11 мая 2009

Требует ли служба WCF в SharePoint, чтобы анонимный доступ был включен?

У нас есть страница приложения, которая вызывает службу с использованием Ajax.Net. Если Anon Access отключен, нам предлагается ввести имя пользователя и пароль, если он включен, то все в порядке.

Мы не используем клиент WCF, он просто вызывается менеджером сценариев

<configuration>
  <system.serviceModel>
    <bindings>
      <webHttpBinding>
        <binding
          name="webHttpBinding_DataSources"
          maxBufferSize="5242880"
          maxReceivedMessageSize="5242880" />
      </webHttpBinding>
    </bindings>
    <behaviors>
      <endpointBehaviors>
        <behavior
          name="ServiceAspNetAjaxBehavior">
          <enableWebScript />
        </behavior>
      </endpointBehaviors>
      <serviceBehaviors>
        <behavior
          name="ServiceBehavior">
          <serviceMetadata
            httpGetEnabled="true"
            httpGetUrl="" />
          <serviceDebug
            includeExceptionDetailInFaults="true" />
        </behavior>
      </serviceBehaviors>
    </behaviors>
    <serviceHostingEnvironment
      aspNetCompatibilityEnabled="true"/>
    <services>
      <service
          name="XXXXXXXX.DataSources.Services.DataSourceHelper"
          behaviorConfiguration="ServiceBehavior">
        <endpoint
          address=""
          behaviorConfiguration="ServiceAspNetAjaxBehavior"
          binding="webHttpBinding"
          bindingConfiguration="webHttpBinding_DataSources"
          contract="XXXXXXXX.DataSources.Services.IDataSourceHelper" />
      </service>
    </services>
  </system.serviceModel>
</configuration>

Спасибо, Филл

1 Ответ

2 голосов
/ 11 мая 2009

Мне удалось заставить его работать со следующим

<configuration>
  <system.serviceModel>
    <bindings>
      <webHttpBinding>
        <binding
          name="webHttpBinding_DataSources"
          maxBufferSize="5242880"
              maxReceivedMessageSize="5242880" >
          <security mode="TransportCredentialOnly">
            <transport clientCredentialType="Ntlm" />
          </security>
        </binding>
      </webHttpBinding>
    </bindings>
    <behaviors>
      <endpointBehaviors>
        <behavior
          name="ServiceAspNetAjaxBehavior">
          <enableWebScript />
        </behavior>
      </endpointBehaviors>
      <serviceBehaviors>
        <behavior
          name="ServiceBehavior">
          <serviceMetadata
            httpGetEnabled="true"
            httpGetUrl="" />
          <serviceDebug
            includeExceptionDetailInFaults="true" />
        </behavior>
      </serviceBehaviors>
    </behaviors>
    <serviceHostingEnvironment
      aspNetCompatibilityEnabled="true"/>
    <services>
      <service
          name="XXXXXXXXXX.DataSources.Services.DataSourceHelper"
          behaviorConfiguration="ServiceBehavior">
        <endpoint
          address=""
          behaviorConfiguration="ServiceAspNetAjaxBehavior"
          binding="webHttpBinding"
          bindingConfiguration="webHttpBinding_DataSources"
          contract="XXXXXXXXXX.DataSources.Services.IDataSourceHelper" />
      </service>
    </services>
  </system.serviceModel>
</configuration>

Я выполнил сброс IIS, и мне пришлось закрыть и снова открыть браузер, чтобы он заработал, хотя

С наилучшими пожеланиями,

Phill

...