6

这是我们的问题。我们已经构建了一个MVC Web-api,它使用带有 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”。

4

1 回答 1

4

您需要的是单点登录 (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-05-17T09:31:40.990 回答