0
网页API我有以下的jQuery代码,成功地使授权调用Web API从同一个(项目)的端口号,用下面的jQuery代码怎么办授权请求,以便从不同的端口号
<script>
$(document).ready(function(){
var ulEmployees = $('#ulEmployee');
var username = $('#uname').val();
var password = $('#pword').val();
username = "male";
password = "male";
$('#btn').click(function() {
$.ajax({
type: 'GET',
url: 'api/Employees',
dataType: 'json',
headers: {
'Authorization': 'Basic' + btoa(username + ':' + password)
},
success: function (data)
{
ulEmployees.empty();
$.each(data, function (index, val) {
var fullName = val.FirstName + ''+val.gender + '' + val.LastName;
ulEmployees.append('<li>' + fullName + '</li>');
});
},
});
});
$('#btnclear').click(function(){
ulEmployees.empty();
});
});
});
如果我从不同的项目也不会工作
我使用下面的值的URL参数请求
URL的请求:“ http://localhost:53099/api/Employees'
我有当您运行的WebAPI它就会在你的本地IIS托管表达对某些特定的端口号,使用的代码进行授权的Web API
<pre>
[BasicAuthentication]
public HttpResponseMessage Get(string gender = "ALL")
{
string username = Thread.CurrentPrincipal.Identity.Name;
// string username = "male";
using (EmployeeDBEntities entities = new EmployeeDBEntities())
{
//int id = 4;
//var entity = entities.Employees.FirstOrDefault(e => e.ID == id);
//return Request.CreateResponse(HttpStatusCode.OK, entity);
switch (username.ToLower())
{
case "male":
return Request.CreateResponse(HttpStatusCode.OK,
entities.Employees.Where(e => e.Gender.ToLower() == "male").ToList());
case "female":
return Request.CreateResponse(HttpStatusCode.OK,
entities.Employees.Where(e => e.Gender.ToLower() == "female").ToList());
default:
return Request.CreateResponse(HttpStatusCode.BadRequest);
}
}
}
实际上,我可以从不同的端口号(使用跨域ajax请求)调用未经授权的呼叫。但从其他端口呼叫时, actionContext.Request.Headers.Authorization将具有值null – rakshi