2011-08-15 63 views
3

我想在我的XBAP中放入一個Back按鈕,它將用戶帶回到他們啓動XBAP的頁面,但我不確定如何從應用程序中獲取HTTP_REFERER。如何在XBAP或ClickOnce應用程序中獲取引用者?

有誰知道它存在的地方?

+0

結帳導航。在MSDN上,我看到了一個被調用頁面從調用頁面中檢索參數的示例。被調用的頁面必須有一個URI才能返回,所以它必須捕獲該頁面。我懷疑這個URI的格式會讓你獲得URL。我無法測試這個,所以我沒有把它作爲答案。 – Paparazzi

+0

@BalamBalam謝謝,但我相信導航只跟蹤XBAP生活的歷史,所以它不會包含調用者的URL。 – Rachel

回答

0

如果您的XBAP託管在瀏覽器中的一個框架中,您可以使用interop回到上一頁。

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

但是,您不能檢索上一頁的網址。

+0

如果用戶一直在XBAP中瀏覽一段時間,Back按鈕會將它們帶到它們進入的頁面,還是XBAP內的最後一頁? – Rachel

+0

其實這不適合我。我相信'hostScript'始終爲空。 – Rachel

+0

由於您正在與瀏覽器通信,它將返回到瀏覽器歷史記錄中的上一頁。您將不得不在一個框架中託管xbap以使其工作。 –

1
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"); 
    } 
}