1

我有一个 asp.net 4.0 应用程序,其中包含一个 Web 服务,用于通过 ajax 呈现一些数据。我通过脚本引用将服务附加到我的脚本管理器。我的网站受表单身份验证保护。

<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 方法并且我的身份验证票仍然有效时,一切都很好,我的回复非常好。但是,如果在调用 javascript 时我的身份验证票已过期,那么服务器会弹出一个窗口,要求我进行身份验证。

服务器正在响应基本身份验证的 401 请求!当您输入有效信息时,它只会再次弹出窗口。

在不应该的时候要求基本身份验证

我在我的服务方法调用中附加了一个错误处理程序,并在提示用户输入一个不起作用的窗口后触发它。我该如何解决?它需要向 onerror 处理程序报告错误或重定向用户(这不太可能发生)。

4

1 回答 1

0

通过禁用 IIS 中的基本和摘要身份验证来修复它(表单身份验证已启用)。一旦我这样做了,它就会使用具有正确行为的表单身份验证。

于 2013-08-22T14:29:07.367 回答