我有一个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