【问题标题】:Jquery Call to Asp.Net WebApi对 Asp.Net WebApi 的 Jquery 调用
【发布时间】:2012-06-20 11:20:32
【问题描述】:

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

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

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

我现在想创建一个 javascript 客户端,使用 JQuery 对我的 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 进行身份验证

【问题讨论】:

    标签: jquery asp.net authentication jsonp asp.net-web-api


    【解决方案1】:

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

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

    以下是一些有助于解决此问题的文章:
    http://codebetter.com/howarddierking/2011/10/11/oauth-2-0-in-web-api/
    Best way to handle authentication on .NET WCF Web API

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2020-01-02
      • 2013-11-13
      • 2013-02-20
      • 2016-09-06
      • 2013-03-26
      • 2013-11-06
      • 1970-01-01
      • 2011-12-07
      相关资源
      最近更新 更多