2

您好一直在创建一个 ASP.net WebApi。

目前我已经使用Thinktecture.IdentityModel.40来设置基本身份验证服务。

当我在浏览器中浏览到我的 API Url 时,会弹出一个用户名和密码对话框,如果我输入凭据,我就会看到正确的数据。

我现在想创建一个使用 JQuery 的 javascript 客户端来验证我的 API,然后返回相关数据。

这是我的尝试,似乎用户名和密码没有到达服务器,或者服务器不理解它正在获取什么。

这是我的代码:

  $(document).ready(function () {
        $.ajax({
            url: "http://localhost:21095/api/customers",
            beforeSend: function (xhr) {
                xhr.setRequestHeader("UserName", "user");
                xhr.setRequestHeader("Password", "pwd");
            },
            dataType: "jsonp",
            type: "GET",
            success: function (data) {
                alert(data);
                debugger
            }
        });
    });

我应该如何使用 Jquery 对我的 api 进行身份验证

4

1 回答 1

1

在请求标头中以纯文本形式提供用户名和密码是危险的。任何监听您流量的人都可以拦截数据并使用它来造成伤害。如果您想通过 JavaScript 进行身份验证,大多数 API 提供程序使用支持 3 路身份验证的身份验证协议。最显着的例子是OAuth

所有这些的目的是用户名和密码本身不会暴露给应用程序,而是用户授予应用程序代表他访问数据的权限。此授权在服务器的域中,因此不需要传输凭据。您应该在 WebApi 中实现一些 3 路身份验证协议来支持这一点。

以下是一些有助于解决此问题的文章:
http ://codebetter.com/howarddierking/2011/10/11/oauth-2-0-in-web-api/
在 .NET WCF Web API 上处理身份验证的最佳方式

于 2012-06-22T09:06:47.647 回答