如何在标头中传递令牌并在CS控制器中检索令牌的值?我在JavaScript中使用了以下代码。
$http({
url: vUrl+"Category/InsertCategories",
dataType: 'json',
method: 'POST',
data: cats,
params: { CompanyId: vCompanyId},
headers: {
"Authentication": "JsonToken",
"Content-Type": "application/json"
}
答案 0 :(得分:3)
在请求中设置Authorization
标头,如下所示:
headers: {
'Authorization': 'Bearer JsonToken'
}
并在控制器中获取令牌:
var token = HttpContext.Request.Headers["Authorization"];
答案 1 :(得分:-1)
通过多种方式设置授权标头
1:
$.ajax({
type: 'GET/POST',
url: 'url',
headers: {
"Authorization": "Basic " + "Jsontoken";
},
success : function(data) {
//Success block
},
error: function (xhr,ajaxOptions,throwError){
//Error block
},
});
2:
$.ajax({
type: 'GET/POST',
url: 'url',
beforeSend: function (xhr){
xhr.setRequestHeader('Authorization', "Basic " + "JosnToke";
},
success : function(data) {
//Success block
},
error: function (xhr,ajaxOptions,throwError){
//Error block
},
});
答案 2 :(得分:-1)
如果您使用的是angular 1.x,那么下面的内容将为您提供一些想法。
yourAngularAppName.service('AuthenticationHeaderInterceptor', [
'$q',
'$location',
function(<dependencies if there are any>) {
var self = this;
config.headers['Authentication'] = "....";
return this; // or whatever you want
}
]);
yourAngularAppName.config([
'$httpProvider',
function(
$httpProvider
) {
// If you have token available at this time, you can do this as well instead of writing interceptor.
//$httpProvider.defaults.headers.common["Authentication"] = "....";
$httpProvider.interceptors.push('AuthenticationHeaderInterceptor');
}
]);
在MVC操作中:
public ActionResult TestAction()
{
var authenticationHeaders = this.Request.Headers.GetValues("Authentication");
var authHeader = authenticationHeaders?.FirstOrDefault(vt => vt != "null");
if (string.IsNullOrWhiteSpace(authHeader))
{
// return unauthorized
}
else {
// continue with rest of the stuff.
}
}