【发布时间】:2016-05-12 04:56:52
【问题描述】:
我有一个 MVC5 项目,我需要从 MVC 控制器调用 Web API 方法。 Web API 使用基于令牌的身份验证,因此我必须为每次调用传递令牌。我正在使用下面的代码在 HTTP 标头中传递令牌:
HttpClient httpClient = new HttpClient();
string baseUrl = "http://localhost:60477/";
dynamic token = Session["token"];
if (token.AccessToken != null)
{
httpClient.DefaultRequestHeaders.Add("Authorization", String.Format("Bearer {0}", token.AccessToken));
}
我的控制器中有多个操作方法,我想使用单个 HttpClient 和标头,添加到一个位置,而不是在每个操作方法中添加标头。
HttpClient 标头注册码在 MVC 应用程序中哪里可以放置,以便所有控制器都可以通用?这意味着我不想重复代码,例如在每个操作方法中添加标记。我该怎么做?
Public ActionResult Postuser(UserModel user)
{
// post code
}
Public ActionResult getuser(UserModel user)
{
HttpResponseMessage response = httpClient.GetAsync(baseUrl + "api/Admin/GetStates").Result;
if (response.IsSuccessStatusCode)
{
string stateInfo = response.Content.ReadAsStringAsync().Result;
}
}
Public ActionResult PostRoles(RoleModel role)
{
// post roles code
}
【问题讨论】:
标签: c# asp.net-mvc asp.net-web-api asp.net-mvc-5