我有一个托管在 IIS 网站中的 WCF 服务,带有表单身份验证。该服务具有[AspNetCompatibilityRequirements(RequirementsMode = AspNetCompatibilityRequirementsMode.Required)]
属性,并且 Web 配置具有这一行:<serviceHostingEnvironment aspNetCompatibilityEnabled="true" />
服务被称为带有 $.ajax() 调用的表单页面。一切正常,直到用户在他的 cookie 过期后调用服务。在这种情况下,会出现“Windows 安全”窗口,提示用户应输入登录名和密码才能访问该服务。如果用户只是关闭窗口而不做任何事情,页面将被重定向到登录页面(这是正确的)
问题:如何跳过此窗口并立即进行重定向?我猜想配置 WCF 服务有些问题,我尝试了一些绑定方案 - 但我无法逃脱这个窗口。
WCF服务的配置:
<system.serviceModel>
<behaviors>
<serviceBehaviors>
<behavior name="metadataAndDebug">
<serviceMetadata httpGetEnabled="true" httpGetUrl=""/>
<serviceDebug includeExceptionDetailInFaults="true" />
</behavior>
</serviceBehaviors>
<endpointBehaviors>
<behavior name="Project.Service.DataServiceAspNetAjaxBehavior">
<enableWebScript/>
</behavior>
</endpointBehaviors>
</behaviors>
<serviceHostingEnvironment aspNetCompatibilityEnabled="true" multipleSiteBindingsEnabled="true" />
<services>
<service name="Project.Service.DataService" behaviorConfiguration="metadataAndDebug" >
<endpoint address="" behaviorConfiguration="Project.Service.DataServiceAspNetAjaxBehavior"
binding="webHttpBinding" contract="Project.Service.DataService" />
</service>
</services>