Request.UrlReferrer没有给出预期的结果

问题描述 投票:0回答:1

我有一个在https下运行的网站。

我试图找出内部页面是否是当前页面的引用者,有选择地做一些事情。

这是我正在测试的代码:

        if (Request.UrlReferrer != null && Request.UrlReferrer.Host == Request.Url.Host)
        {
            Response.Write(Request.UrlReferrer.OriginalString + "<br>");
            Response.Write(Request.UrlReferrer.AbsoluteUri + "<br>");
            Response.Write(Request.Headers["Referer"] + "<br>");
        }

代码正确地捕获内部请求,但是输出的变量只包含基本域 - https://example.com/而不是预期的完整URL https://example.com/some-page/

我原本以为输出会存在或为空,而不是部分。

它在非https环境中可以正常工作。

任何人都知道是否/如何解决这个问题。

asp.net webforms
1个回答
0
投票

事实证明,这是我对推荐人政策“严格来源”的误解。对内部推荐过于严格。我需要的是稍微不那么严格的“同源”。

你可以看到这个解释所有的excellent article

© www.soinside.com 2019 - 2024. All rights reserved.