ASP.NET网站中托管的WCF服务 - Windows身份验证无法正常工作

时间:2015-06-19 08:18:52

标签: asp.net windows wcf authentication iis

我在asp.net网站上托管WCF服务。在IIS上,它集成了Windows身份验证设置。我正在使用jquery从一个asp.net网站页面调用wcf服务方法。但是,不幸的是,这个电话是要求我已经为网站提供的Windows用户名/密码。我的理解是身份验证令牌也会自动传递给wcf调用。

如果我的配置/ ajax呼叫有问题,请告诉我。

以下是我的配置:

 <system.serviceModel>
<behaviors>
  <endpointBehaviors>
    <behavior name="EllipseBehavior">
      <enableWebScript />
    </behavior>
  </endpointBehaviors>
  <serviceBehaviors>
    <behavior name="EllipseBehavior" >
      <!-- Add the following element to your service behavior configuration. -->
      <serviceMetadata httpGetEnabled="true" />
    </behavior>
  </serviceBehaviors>
</behaviors>
<serviceHostingEnvironment aspNetCompatibilityEnabled="true" />
<services>
  <service name="EllipseService" behaviorConfiguration="EllipseBehavior">
    <endpoint address="" behaviorConfiguration="XX.Services.Behaviour.EllipseBehavior"
      binding="webHttpBinding" contract="XX.Services.Contract.IEllipseService" />
  </service>
</services>
<bindings>
  <basicHttpBinding>

  </basicHttpBinding>
</bindings>
<client>

</client>

调用Ajax

$.ajax({
        type: "GET",
        url: "/Services/Ellipse.svc/GetWorkOrdersByLine",
        data: { lineCode: workOrder.getLineCode() },
        contentType: "application/json; charset=utf-8",
        statusCode: {
            404: function() {
                alert("Incorrect URI for Service Orders");
                $.unblockUI();
            }
        },
        dataType: "json",
        success: this.onSuccess,
        error: this.onError
    });

1 个答案:

答案 0 :(得分:0)

您需要使用&#39; TransportCredentialOnly&#39;绑定中的属性。这篇文章解释得很好:

https://msdn.microsoft.com/en-us/library/ff648505.aspx

如何:在Windows窗体的WCF中使用带有Windows身份验证和TransportCredentialOnly的basicHttpBinding

  

这篇指南文章将指导您完成使用Windows的过程   使用了基于httpHttpBinding绑定的身份验证   TransportCredentials只有安全模式。这篇文章告诉你如何   配置WCF,配置Internet信息服务(IIS)   Windows身份验证,并使用示例WCF客户端测试服务。