您好,一直在创建一个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进行身份验证答案 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