如何在标头中传递令牌并在cs

时间:2019-12-10 13:05:57

标签: javascript angularjs asp.net-mvc

如何在标头中传递令牌并在CS控制器中检索令牌的值?我在JavaScript中使用了以下代码。

$http({
        url: vUrl+"Category/InsertCategories",
        dataType: 'json',
        method: 'POST',
        data: cats,
        params: { CompanyId: vCompanyId},
        headers: {
            "Authentication": "JsonToken",
            "Content-Type": "application/json"
        }

3 个答案:

答案 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.
    }
}