这是我们的问题.. 我们构建了一个 MVC Web-api,它使用带有 cookie 的表单例份验证来处理 session 。 当我们在与 web-api 相同的域(本地主机或 Web 服务器)上使用前端网页时,一切正常。 (我们使用 JQuery $.get 和 $.post 与 web-api 进行通信)。
尽管前端 future 应该是一个独立的 html5 应用程序,而不是与 web-api 位于同一域。 不幸的是,这不起作用。
web-api 确实会向客户端返回一个身份验证 cookie,但是当前端发送请求时,该 cookie 不会返回到 web-api。 当 web-api 和前端位于同一域时,cookie 会自动随请求一起发送。
我们已尝试设置 web-api webconfig 文件中的“Access-Control-Allow-Origin: *”和“Access-Control-Allow-Authentication: true”。
最佳答案
您需要的是单点登录 (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。
关于asp.net-mvc - 使用Forms身份验证跨域,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10632551/