C# 如何在XBAP或ClickOnce应用程序中获取推荐人?

C# 如何在XBAP或ClickOnce应用程序中获取推荐人?,c#,wpf,navigation,clickonce,xbap,C#,Wpf,Navigation,Clickonce,Xbap,我想在我的XBAP中放置一个返回按钮,将用户带回他们启动XBAP的页面,但是我不确定如何从应用程序中获取HTTP\u REFERER 有人知道它在哪里吗?如果您的XBAP位于浏览器的框架中,您可以使用interop返回上一页 var hostScript = BrowserInteropHelper.HostScript; if (hostScript != null) hostScript.History.Back(); 但是,您无法检索上一页的url。签出导航。在MSDN上,我看到

我想在我的XBAP中放置一个
返回
按钮,将用户带回他们启动XBAP的页面,但是我不确定如何从应用程序中获取HTTP\u REFERER


有人知道它在哪里吗?

如果您的XBAP位于浏览器的框架中,您可以使用interop返回上一页

var hostScript = BrowserInteropHelper.HostScript;
if (hostScript != null)
    hostScript.History.Back();

但是,您无法检索上一页的url。

签出导航。在MSDN上,我看到了一个被调用页从调用页检索参数的示例。被调用的页面必须有一个URI才能向后导航,因此它必须捕获该URI。我怀疑URI的格式将允许您派生URL。我无法对此进行测试,因此我没有将其作为答案发布。@BalamBalam谢谢,但我相信导航只跟踪XBAP生命周期的历史,因此它不会包含呼叫者的URL。如果用户在XBAP中导航了一段时间,后退按钮是否会将他们带到他们进入的页面,或者他们在XBAP中的最后一页?实际上这对我不起作用。我相信
hostScript
始终为空。由于您正在与浏览器通信,它将返回到浏览器历史记录中的上一页。您必须在一个框架中托管xbap才能工作。xbap部署在嵌入式web浏览器中,该浏览器是我们软件应用程序的一部分,而不是实际的浏览器。也许这就是它不起作用的原因。
var h = BrowserInteropHelper.HostScript;
if (h != null)
{
    string s1 = h.location.href;
    if (!s1.StartsWith(sa1))
    {
        MessageBox.Show("Visit the original website at " + sa1 + " or disable referer control");
    }
}