Jquery致电Asp.Net WebApi

时间:2012-06-18 13:14:15

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

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

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

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

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

这是我的尝试,似乎用户名和密码没有到达服务器,或者服务器无法理解它的内容。

这是我的代码:

  $(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进行身份验证

1 个答案:

答案 0 :(得分: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