C# httphandler重定向进入无限循环

C# httphandler重定向进入无限循环,c#,asp.net,httphandler,C#,Asp.net,Httphandler,我有一个httphandler,它可以截取名为“calderdale”的文件夹中存在的任何pdf文件请求,并将用户重定向到登录页面。这就是我重定向的方式 if (memberLoginName == "UNKNOWN" && !isDomainFallthrough) { // Check if the user is logged in, if not redirect to Login page. cont

我有一个httphandler,它可以截取名为“calderdale”的文件夹中存在的任何pdf文件请求,并将用户重定向到登录页面。这就是我重定向的方式

  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
         }
e、 g.初始请求是针对“” 返回的url变为“”

由于返回的url还包含“calderdale/1.pdf”,因此会再次截取该url,并以无限循环的方式进行。
你知道我们怎样才能阻止这种无限循环吗?谢谢

您能想到的第一件事是如何调用HttpHandler。。为什么它要检测查询字符串中的url

除此之外,您的问题还有一个非常简单的解决方案(假设它实际上是由查询字符串中的url引起的)。 不使用UrlEncode-将字符串转换为Base64,登录url如下所示:

“”


有关如何编码和解码从base 64到base 64的字符串的详细信息:

您不能检测url是否包含~/Login.aspx并在该点中断循环吗?根据您的描述,听起来您只是在字符串中搜索地址。相反,您应该尝试将字符串解析为URI,只检查路径部分。尝试从重定向URL中删除最后一个字符,看看它是否循环。也就是说,确认您正在返回处理程序,因为文件类型似乎是“.pdf”。我的回答有用吗?如果是这样,接受它,这样其他人也可以使用它。如果不是,你有没有找到不同的解决方案?