我有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标头可以被欺骗。因此不可靠。

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

因此,在您的click事件中,将发生以下情况:


浏览器对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在进行呼叫,但是至少该身份验证没有暴露给浏览器。

09-25 17:26