Jquery 调用 Asp.Net WebApi

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

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

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

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

我现在想使用 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 进行身份验证

最佳答案

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

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

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

关于Jquery 调用 Asp.Net WebApi,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11083691/

相关文章:

javascript - 使用ajax提交表单?

css - Ajax 组合框 css 删除

trello - 使用 OAuth 以编程方式访问 Trello

javascript - 使用 cookies 在 jQuery 中关闭后不显示弹出窗口

jquery - 显示选定的单选按钮并隐藏所有其他按钮

asp.net - 你用什么让 javascript 更像 C# ?

css - 如何使登录对话框像 Facebook 的登录页面一样在 CSS 中的一行中固定在页面顶部?

asp.net-mvc - 使用端口号的 ASP.NET Core 身份验证

javascript - 如何制作侧边菜单动画?

c# - 如何处理IHttpModule中的Session?