我有 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 可能会被欺骗。所以这个说法不可靠。
我认为能够接近可靠解决方案的唯一方法是添加服务器到服务器通信以执行两个应用程序之间的切换。
因此,在您的点击事件中,会发生以下情况:
- 浏览器向 Web1 发出 AJAX 调用,以请求 Web2 的 URL
- Web1(从服务器)向 Web2 发出 HTTP 调用
- Web2 返回一个唯一的 URL(例如,http:\\Web2.com\FromWeb1\8247983659(或者可能带有 GUID,无论您想要什么)
- Web1 将唯一的 URL 返回给浏览器
- 浏览器将用户重定向到唯一的 URL
- Web2 验证所使用的 URL 是否是它生成的 URL,从而知道用户来自 Web1
您仍然需要在步骤 2 中进行一些身份验证,以便 Web2 知道是 Web1 进行调用,但至少该身份验证不会暴露给浏览器。
关于javascript - 获取请求访问另一个网站的网站域名,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50002522/