我有一个asp.net 4.0应用程序,它包含一个用于通过ajax呈现某些数据的Web服务。我通过脚本引用将服务附加到我的scriptmanager。我的网站受表单身份验证保护。
<ajaxtoolkit:toolkitscriptmanager id="ScriptManager1" runat="server" enableviewstate="false"
asyncpostbacktimeout="3600" scriptmode="Auto" enablepagemethods="true" CombineScripts="true" EnableCdn="true" >
<Services>
<asp:ServiceReference Path="~/WebServices/PortalWebService.asmx" />
</Services>
</ajaxtoolkit:toolkitscriptmanager>
当我尝试使用javascript调用webservice方法并且我的auth票仍然有效时,一切都是hunky dory,我的回复完全没问题。但是如果在进行javascript调用时我的身份验证票已过期,则服务器会弹出一个窗口,要求我进行身份验证。
服务器正在响应401基本身份验证请求!当你输入有效信息时,除了再次弹出窗口之外什么都不做。
我已经在我的服务方法调用上附加了一个错误处理程序,并在提示用户提供不起作用的窗口后触发它。我该如何解决?它需要向错误处理程序报告错误或重定向用户(这不太可能发生)。
答案 0 :(得分:0)
通过在IIS中禁用基本身份验证和摘要身份验证来修复此问题(已启用表单身份验证)。一旦我这样做,它使用具有正确行为的表单身份验证。