在JS Metro应用程序中,禁止登录屏幕进行基本身份验证

Supress login screen for basic authentication in JS Metro App

本文关键字:屏幕 身份验证 登录 禁止 Metro JS 应用程序      更新时间:2023-09-26

我有一个相当简单的WinJS Metro应用程序,在从Web服务获取一些JSON数据之前,它会询问用户用户名和密码。

我使用jQuery.ajax()来获取数据,并正确设置了基本的身份验证头。然而,如果用户输入了不正确的凭据,并且服务器返回401,则metro运行时将显示登录屏幕。除非用户在运行时提供的登录屏幕上按"取消",否则不会调用传递给jQuery.ajax()函数的错误处理程序。

我想让程序处理失败的登录尝试,有没有办法抑制运行时登录屏幕?

不确定您在做什么,但如果用户提供了错误的用户名/密码,以下代码会正确触发错误处理程序:

    var userInfo = getCurrentUserInfo();
    $.ajax({
        url: URL,
        dataType: 'json',
        success: jsonCallback,
        username: userInfo.username,
        password: userInfo.password,
        error: function (jqXHR, textStatus, errorThrown) {
            errorHandler(jqXHR, textStatus, errorThrown);
        }
    }

您是自己提供用户名/密码,还是在等待系统的登录对话框出现?恐怕一旦它出现,就不会像你说的那样,在用户取消之前返回到你的代码。