asp.net-mvc - 使用Forms身份验证跨域

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

这是我们的问题.. 我们构建了一个 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/

相关文章:

c# - WCF 与 ASP.NET Web API

django - 使用 Django 和 S3 静态文件托管的 Heroku 所见即所得

javascript - 从后端发送的 Cookie 未在前端设置

c# - MVC WebAPI 中的 MapRoute 或 MapHttpRoute

c# - 通过javascript设置iframe的用户代理

asp.net-mvc - 使用 Unity 错误的 ASP.NET Web API 中的依赖注入(inject)

c# - 你能在 Controller 中使用泛型方法吗?

javascript - 有什么方法可以将整个网页从不同域加载到我的页面吗?

asp.net-mvc - 续订 Azure ACS 颁发的 JWT

asp.net-mvc - MVC HTML.RenderAction – 错误 : Duration must be a positive number