如何在Vue JS中接收来自ASP.NET MVC的XSRF-TOKEN发送?

时间:2019-06-04 08:52:00

标签: c# asp.net vuejs2 asp.net-web-api2 vuex

在后端,我使用过asp.net Web API,可以通过比较隐藏字段令牌和cookie令牌来验证令牌,如下所示:

try
{
  string cookieToken, formToken;
  AntiForgery.GetTokens(null, out cookieToken, out formToken);

  CookieHeaderValue cookie = Request.Headers
                                    .GetCookies(AntiForgeryConfig.CookieName)
                                    .FirstOrDefault();
  if (cookie != null)
  {
    Stream requestBufferedStream = Request.Content.ReadAsStreamAsync().Result;
    requestBufferedStream.Position = 0;
    NameValueCollection myform = Request.Content.ReadAsFormDataAsync().Result;
    try
    {
      AntiForgery.Validate(cookie[AntiForgeryConfig.CookieName].Value,
       myform[AntiForgeryConfig.CookieName]);
    }
    catch (Exception ex)
    {
      throw new HttpResponseException(
       new HttpResponseMessage(HttpStatusCode.Unauthorized));
    }
  }
}

但是我无法使用Vue在前端创建XSRF-令牌? 如何在前端创建此XSRF验证令牌,以便以后可以将它们发送回后端进行验证。

这里,我的后端和前端项目是单独的项目。

那里的任何人...

1 个答案:

答案 0 :(得分:0)

必须在后端创建XSRF令牌,并将其存储在前端的cookie或本地存储中。

查看MS文档,以查看vainilla javascript和angular的示例(Vue必须相似)pykml package