0

我想从 asp.net 2.0 应用程序访问启用 SSL 的 WCF 服务。站点托管在 IIS 7 上。

这是代码

function getCourse() {
    $.ajax({
        type: "GET",
        url: "https://website.com/service.svc/task",
        processData: false,
        contentType: "application/json; charset=utf-8",
        dataType: "json",
        timeout: 7000,
        username: "someusername",
        password: "somepassword",
        success: function (data) { alert("success"); },
        error: function (xhr, status, error) { alert("error"); }
    });
};

我收到 401 错误,我没有在 iis 或 webconfig 中进行任何与 ssl 访问相关的配置?我在这里错过了什么吗?还是我使用 asp.net 2.0 应用程序的事实导致了错误?

4

1 回答 1

0

好吧,我认为您可能需要在 jquery ajax 函数中添加其他标头,如下所示:

headers: { 
    Authenticate: Basic username:password (to base64)
}

或者

beforeSend: setHeaders

function setHeader(xhr) {
    xhr.setRequestHeader('Authorization', 'Basic base64.encode(username:password)');
}

根据 Wiki,401 Unauthorized 被定义为

类似于 403 Forbidden,但专门用于需要身份验证但已失败或尚未提供身份验证时使用。

响应必须包含一个WWW-Authenticate 标头字段,该字段包含适用于所请求资源的质询。请参阅基本访问身份验证和摘要访问身份验证。

参考 HTTP 状态码:http
://en.wikipedia.org/wiki/List_of_HTTP_status_codes 基本访问认证:http ://en.wikipedia.org/wiki/Basic_access_authentication

于 2012-10-01T15:01:00.633 回答