javascript - 获取请求访问另一个网站的网站域名

标签 javascript jquery asp.net-mvc-4

我有 2 个不同的网站需要集成。我们将它们命名为 Web1 和 Web2。 我想在允许对 Web2 进行任何访问之前验证请求的 Web1 是否确实是 Web1。

Request.Url.Host只会获取当前网站的域名。 我需要的是验证 Web2 C# 代码中 Web1 的域。

目前,这就是我从 Web1 调用 Web2 的方式。

$("#btn").click(function() ( 
    window.location.href = "http:\\Web2.com\Test"
)}

谢谢

最佳答案

URL 引荐来源网址和 Origin header 可能会被欺骗。所以这个说法不可靠。

我认为能够接近可靠解决方案的唯一方法是添加服务器到服务器通信以执行两个应用程序之间的切换。

因此,在您的点击事件中,会发生以下情况:

  1. 浏览器向 Web1 发出 AJAX 调用,以请求 Web2 的 URL
  2. Web1(从服务器)向 Web2 发出 HTTP 调用
  3. Web2 返回一个唯一的 URL(例如,http:\\Web2.com\FromWeb1\8247983659(或者可能带有 GUID,无论您想要什么)
  4. Web1 将唯一的 URL 返回给浏览器
  5. 浏览器将用户重定向到唯一的 URL
  6. Web2 验证所使用的 URL 是否是它生成的 URL,从而知道用户来自 Web1

您仍然需要在步骤 2 中进行一些身份验证,以便 Web2 知道是 Web1 进行调用,但至少该身份验证不会暴露给浏览器。

关于javascript - 获取请求访问另一个网站的网站域名,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50002522/

相关文章:

javascript - 将图像从移动网络应用程序(PhoneGap 和 JavaScript)上传到 SOAP 网络服务返回状态 0

jquery - 具有数据属性的 Toggle 类

javascript - 如何在jquery中按名称选择选项

asp.net-mvc - 经过身份验证的用户和服务层

c# - MVC4 JsTree 将选定的节点传递给 Controller

javascript - 设置文本框接受 2 位小数

javascript - 通过 JS 重新渲染推文按钮

javascript - AngularJS 包含可重用的 html 内容

javascript - 加载页面时 jQuery 代码不起作用

json - 如何反序列化 WCF Restful 服务的 Json 响应?