【问题标题】:Using Forms authentication cross domain跨域使用 Forms 身份验证
【发布时间】:2012-05-24 20:13:38
【问题描述】:

这是我们的问题.. 我们构建了一个 MVC Web-api,它使用 Forms 身份验证 和 cookie 来处理会话。 当我们在与 web-api 相同的域(localhost 或 web-server)上使用前端网页时,一切正常。 (我们使用 JQuery $.get 和 $.post 与 web-api 进行通信)。

虽然前端在未来应该是一个独立的 html5 应用程序,而不是与 web-api 位于同一域。 不幸的是,这不起作用。

web-api 确实向客户端返回了一个身份验证 cookie,但是当前端发送它的请求时,cookie 并没有被带回 web-api。 当 web-api 和前端在同一个域时,cookie 会自动随请求一起发送。

我们已经尝试设置 web-api webconfig 文件中的“Access-Control-Allow-Origin: *”和“Access-Control-Allow-Authentication: true”。

【问题讨论】:

  • 你能解决这个问题吗?我处于类似情况,但我的客户端应用程序位于基于 HTML5 的 phonegap 应用程序中,该应用程序在移动浏览器容器上运行。

标签: asp.net-mvc asp.net-web-api cross-domain forms-authentication


【解决方案1】:

您需要的是单点登录 (SSO) 功能。

浏览器只会 cookie 到同一个域,这就是为什么当应用程序位于不同域时它无法工作的原因。

CodeProject 中有一篇关于在 ASP.NET 中实现 SSO 的好文章 - http://www.codeproject.com/Articles/106439/Single-Sign-On-SSO-for-cross-domain-ASP-NET-applic 它也适用于 ASP.Net MVC。

【讨论】:

  • 这篇文章很棒!
猜你喜欢
  • 2012-03-10
  • 1970-01-01
  • 2015-08-21
  • 1970-01-01
  • 2016-01-05
  • 1970-01-01
  • 2011-01-16
  • 2019-02-25
  • 1970-01-01
相关资源
最近更新 更多