我在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
});
答案 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客户端测试服务。