如何从客户端传递令牌并使用表单数据获取Web API post方法?

时间:2017-04-18 11:49:18

标签: angularjs asp.net-web-api

我正在编写一个Web API,我需要提交表单数据,但在提交之前我需要检查,用户是否经过身份验证。所以,我在angularjs客户端使用基于令牌的身份验证,并在localstorage中保存令牌。

但我不知道如何传递我的令牌与表格数据,该表格数据存储在localstorage中并在控制器的Post方法上获取,如下所示。

public IHttpActionResult Post([FromBody]Customer cust)
{
    var newCust = _Repository.InsertCustomer(cust);
    if (newCust != null)
    {
       **// need to get token here which is saved in local storage**

        return Created<Customer>(Request.RequestUri + newCust.ID.ToString(), newCust);
    }
    else
    {
        return Conflict();
    }
}

请提供代码示例的解决方案。

1 个答案:

答案 0 :(得分:0)

您可以使用您以前存储的密钥从本地存储中获取令牌,如

var token = JSON.parse($window.localStorage.getItem("tokenKey"));

然后在请求标头中设置令牌

 $httpProvider.defaults.common['Authorization'] = token;  

并在webapi控制器中从标题

获取令牌
IEnumerable<string> tokens;
var hastoken = Request.Headers.TryGetValues("Authorization", out tokens);

然而,这只是理解的简单实现,您应该根据应用程序设计进行更多搜索并遵循标准实践。