我已经使用ajax调用完成登录,并使用以下代码将访问令牌存储在会话存储中。
$('#btnLogin').click(function () {
$.ajax({
url: 'http://localhost:59983/token',method: 'POST',contentType: 'application/json',data: {
username: $('#txtusername').val(),password: $('#txtPassword').val(),grant_type: 'password'
},success: function (response) {
sessionStorage.setItem("accessToken",response.access_token);
console.log("Success!!!!");
alert("Login Successful");
},error: function (jqXHR) {
console.log("Failed!!!!");
$('#divErrorText').text(jqXHR.responseText);
$('#divError').show('fade');
}
});
});
现在登录后,我想使用存储的访问令牌来通过控制器方法使用HttpClient执行api调用。我不知道如何传递存储的访问令牌进行api调用。 我编写了以下代码以使用HttpClient进行api调用。
using (var client = new HttpClient())
{
client.BaseAddress = new Uri("http://localhost:59983/api/flight");
client.DefaultRequestHeaders.Add("Authorization","Bearer " + accessToken);
var responsetask = client.Getasync("flight");
responsetask.Wait();
var result = responsetask.Result;
if (result.IsSuccessStatusCode)
{
var readTask = result.Content.ReadAsAsync<IList<tblFlight>>();
readTask.Wait();
flights = readTask.Result;
}
else
{
flights = Enumerable.Empty<tblFlight>();
ModelState.AddmodelError(string.Empty,"Server error. Please contact administrator.");
}
}
请建议我如何使用该存储的访问令牌?