SharePoint,WCF和匿名访问

时间:2009-05-11 09:45:49

标签: sharepoint wcf wcf-binding

SharePoint上的WCF服务是否要求启用匿名访问?

我们有一个使用Ajax.Net调用服务的应用程序页面,如果Anon Access关闭,那么我们会收到提示输入用户名和密码的信息,如果它已经打开,那么一切都很好。

我们没有使用WCF客户端,它纯粹由scriptmanager调用

<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>

谢谢,Phill

1 个答案:

答案 0 :(得分:2)

我设法使用以下

<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>

我做了一个IISReset,不得不关闭并重新打开我的浏览器以使其正常工作

最诚挚的问候,

菲尔