我有一個httphandler攔截任何pdf文件請求存在於名爲「calderdale」的文件夾內,並將用戶重定向到登錄頁面。這就是我如何重定向httphandler重定向進入無限循環
if (memberLoginName == "UNKNOWN" && !isDomainFallthrough)
{
// Check if the user is logged in, if not redirect to Login page.
context.Response.Redirect("~/Login.aspx?retUrl=" + HttpUtility.UrlEncode(context.Request.Url.ToString()));
}
else
{
// download file
}
例如,最初的請求時爲「http://local.knowledge.scot.nhs.uk/calderdale/1.pdf」 和返回URL變成「http://local.knowledge.scot.nhs.uk/Login.aspx?retUrl=http://local.knowledge.scot.nhs.uk/calderdale/1.pdf」
爲返回URL中還含有「卡爾德達爾/次數1.pdf」這個URL被再次攔截,這正好在無限循環。 任何想法我們如何能夠阻止這種無限循環?謝謝
如果url包含〜/ Login.aspx並且在那個時候打破循環,你不能檢測到嗎? – Jras 2013-05-03 23:51:44
根據你的描述,這聽起來像你只是在尋找地址的字符串。相反,您應該嘗試將字符串解析爲URI,並僅檢查路徑部分。 – dlev 2013-05-03 23:52:53
嘗試刪除重定向網址中的最後一個字符,看看它是否循環。也就是說,確認你回到你的處理程序,因爲文件類型看起來是「.pdf」。 – 2013-05-04 01:36:46