Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/379.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/asp.net-mvc/16.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
通过Ajax(Javascript)进行跨域身份验证_Javascript_Asp.net Mvc_Authentication_Cross Domain - Fatal编程技术网

通过Ajax(Javascript)进行跨域身份验证

通过Ajax(Javascript)进行跨域身份验证,javascript,asp.net-mvc,authentication,cross-domain,Javascript,Asp.net Mvc,Authentication,Cross Domain,有很多类似的问题被问到,尽管我没有找到一个好的答案。下面是一个场景 鉴于: 三个不同域名的网站(不仅仅是不同的子域): 站点1:Domain:CrossDomainServer.com-我完全控制这个网站。服务器端技术-asp.net-mvc 站点2:Domain:CrossDomainClient.com-我只能要求他们的管理员在他们的页面上添加一些javascript/html 站点3:域:CrossDomainEvil.com-一个没有权限使用CrossDomainServer.com提

有很多类似的问题被问到,尽管我没有找到一个好的答案。下面是一个场景

鉴于: 三个不同域名的网站(不仅仅是不同的子域):

  • 站点1:Domain:CrossDomainServer.com-我完全控制这个网站。服务器端技术-asp.net-mvc
  • 站点2:Domain:CrossDomainClient.com-我只能要求他们的管理员在他们的页面上添加一些javascript/html
  • 站点3:域:CrossDomainEvil.com-一个没有权限使用CrossDomainServer.com提供的服务的网站
目标:
  • 当CrossDomainClient.com使用CrossDomainServer.com提供的javascript加载页面时,需要检查CrossDomainClient.com是否允许使用服务。如果有,则显示这些服务;如果没有,则显示登录表单
  • 登录后,在重新加载页面时,不应要求此站点再次登录
  • 登录CrossDomainClient.com后,应该能够通过ajax获取数据并将数据发布到CrossDomainServer.com。
    • 诺亚给出了一个很好的解决方案
    • 此外,这里还介绍了如何在asp.net-mvc中实现这一点
  • 如果CrossDomainEvil.com在其页面上放置相同的脚本,则当用户在CrossDomainClient.com上获得授权时,不应允许他们使用服务-他们应查看登录表单

这似乎不是我想要的,因为它允许单点进入多个系统

如果有人能给我指一指《傻瓜》这篇关于如何做到这一点的文章,那将是最好的,因为我真的不知道从哪里开始


非常感谢您的帮助。

您需要使用跨源资源共享(CORS)来支持跨域AJAX POST请求。HTML5 Rocks有一篇很好的文章让您开始使用它:。我不知道asp.net-mvc,所以我无法帮助了解实际的身份验证逻辑。我应该提到这一点,但我已经研究了CORS。事实上,它解决了跨域GET和POST ajax请求的需求。身份验证本身是我最需要的帮助。虽然这篇文章很棒!谢谢你!