从Web Api保留令牌的位置

时间:2017-01-19 17:33:10

标签: asp.net-mvc asp.net-web-api

我有一个网站:http://webapi.com(用ASP.NET Web API编写)和另一个网站,如:http://consumer.com(用ASP.NET MVC编写)。 消费者将用户名和密码传递给了这个webapi,它给了我一个令牌。

{
  "access_token": "XuGGwTfZ_XvapFtwsFO0-...",
  "token_type": "bearer",
  "expires_in": 86399
}

我的问题是,我应该在消费者应用中将此令牌存储在哪里? 在消费者网站上,我有一个类似的行为:

public ActionResult Login(LoginUserViewModel data)
{
   var response = PostAsync<LoginUserResultViewModel>("http://webapi.com/token",
       new StringContent("grant_type=password"+ 
        "&username=" + data.Username + 
        "&password=" + data.Password, 
        Encoding.UTF8, 
        "application/x-www-form-urlencoded"));

   HttpContext.Session[BLConstants._TOKEN_SESSION_NAME_] = response.Token;

   FormsAuthentication.SetAuthCookie(data.Username, createPersistentCookie: true);

    return View();
}

在消费者的另一个行动中,例如:HomeController-&gt; GetList,我需要该令牌发送到webapi才能获取列表,但我没有那个HttpContext.Session [Constants._TOKEN_SESSION_NAME_],它和& #39; s null。

我还有其他地方可以存储令牌吗?将此令牌存储到会话中是否安全?

0 个答案:

没有答案