asp.net-mvc – 使用令牌认证访问Web Api的MVC .NET cookie认证
我有一个Mvc 5客户端拥有自己的cookie认证。
我还有一个受到Owin承载令牌保护的Web Api(我使用了创建令牌端点的VS2013 Web Api模板) 好的,现在我的Mvc 5客户端需要使用我的WebApi。 internal async Task<string> GetBearerToken(string siteUrl,string Username,string Password) { HttpClient client = new HttpClient(); client.BaseAddress = new Uri(siteUrl); client.DefaultRequestHeaders.Accept.Clear(); HttpContent requestContent = new StringContent("grant_type=password&username=" + Username + "&password=" + Password,Encoding.UTF8,"application/x-www-form-urlencoded"); HttpResponseMessage responseMessage = await client.PostAsync("Token",requestContent); if (responseMessage.IsSuccessStatusCode) { TokenResponseModel response = await responseMessage.Content.ReadAsAsync<TokenResponseModel>(); return response.AccessToken; } return ""; } 在我的Mvc行动中,我呼吁: public async Task<ActionResult> Index() { var token = await GetBearerToken("http://localhost:6144/","teste","123456"); using (var client = new HttpClient()) { client.DefaultRequestHeaders.Add("Authorization","Bearer "+ token); var response = await client.GetAsync("http://localhost:6144/api/values"); if (response.IsSuccessStatusCode) { var data = response.Content.ReadAsAsync<IEnumerable<string>>(); return Json(data.Result,JsonRequestBehavior.AllowGet); } } } 这一切都很好…但我需要使用Web Api在我的所有行动… 谢谢 解决方法
如果我正确的话,您的MVC 5客户端应用程序正在访问不同应用程序的WebAPI。
MVC 5客户端使用cookie来验证用户。要访问WebAPI,您可以从/ Token端点获取承载信号,并将其发送到授权标头。 您不要从客户端Javascript代码调用WebAPI,您只需要在MVC操作的MVC操作运行MVC5应用程序的服务器上调用它。 在每个服务调用声音错误之前获取一个新的令牌。这意味着每次两次往返。这不能执行。 如果我是对的,你可以: >将令牌存储在Session对象中。只要您的MVC应用程序的用户进行身份验证,并且他的会话仍然存在,那么您将始终拥有相同的令牌。 我将使用会话存储。简单。直向前 希望这可以帮助你。反馈赞赏:-) (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
- asp.net-identity – 多租户身份服务器openid身份验证
- ASP.NET MVC Url路由支持(点)
- 在ASP.NET MVC Core控制器的构造函数中设置ViewBag属性
- asp.net – 包中的文件排序 – 已知的库是什么?
- asp.net – 我在哪里可以找到丢失的.aspx.vb文件的副本?
- asp.net-mvc – 传递的JSON集合未被控制器拾取
- asp.net-mvc – 动作过滤器执行顺序
- asp.net-mvc – EF映射对象不兼容的数据读取器异常
- asp.net – 使用IIS和ASP .Net实现负载均衡
- QueryString与ASP.NET MVC 6锚点标签助手
- asp-classic – 使用ADO Stream逐行读取大文件?
- ASP.NET-MVC(IIS6)高流量时出错:指定的强制转换
- 在Asp.Net Core中使用TempData时无法重定向到操作
- 在ASP.NET MVC 5中向Windows角色添加自定义角色
- asp.net-mvc – ASP.NET MVC验证针对空列表框抛出
- ASP.NET:将ViewState移动到页面底部
- asp.net – DropDownList获取底层对象
- .net – 强制ActionLinks呈现为小写
- asp.net-mvc-3 – 当两个网格位于同一页面时进行
- asp.net-mvc-4 – 如何使用Hot Towel角色使用Win