我有以下网站:带有Angular(1)的asp.net MVC网站 - > WebApi(2) - >具有WCF和MVC服务混合的asp.net MVC远程站点(3)
(1)Angular客户端在一个新的“更轻”的asp .net MVC站点中运行,并且应该使用承载令牌从WebApi获取数据。未来要求:单点登录
(2)WebApi将是未来的终点。但截至目前,来自旧网站(3)的繁重后端需要临时解决方案。繁重的后端将逐渐转移到WebApi,省略诸如silverlight组件,Windows应用程序依赖等等.WebApi也是一个新的设置,但通过/ token端点提供令牌。我遵循了这个指南:http://bitoftech.net/2014/06/01/token-based-authentication-asp-net-web-api-2-owin-asp-net-identity/
(3)远程asp.net MVC站点包含一堆WCF服务和一些作为api的MVC控制器。 WCF服务允许使用WebInvoke的HTTP json等。它需要会话和表单身份验证。它以cookie响应。
我的问题是。如何在WebApi控制器操作方法中使用HttpClient将WebApi用作新MVC站点(1)和旧MVC站点(3)之间的中间层?我假设我需要从旧网站(3)中获取cookie,将其作为自定义属性或声明添加到令牌中。将令牌返回到新站点(1),让Angular将令牌保存到浏览器中的本地存储。然后,Angular会在每次请求授权时向WebApi(2)发送令牌。然后,WebApi控制器操作方法(2)将从令牌(cookie)中解包自定义数据,并在请求时将其发送到旧站点(3)。
答案 0 :(得分:0)
我认为一个网站的cookie无法在其他网站上消费。 如果您有权访问site3用户数据库: 1 - 在site1中有一个令牌端点,用于验证用户并返回令牌。 2 - 从site1(客户端)调用令牌端点并获取令牌。 3 - 使用Authorization Bearer标头向任何请求添加令牌。 希望这个帮助