1

我有一个页面,如果您没有我想要的 cookie,它会将您重定向到创建 cookie 的页面。基本上,如果您没有告诉我您已经足够大,您必须重定向到一个页面并告诉我您的年龄。长话短说,如果我被重定向到我询问您年龄的页面,并且最终用户没有决定给我年龄并点击同一页面或其他页面。我的代码正在添加到现有字符串中。

protected void Page_Load(object sender, EventArgs e)
    {       
        string referrer = Request.UrlReferrer.ToString();

            if (Request.Cookies["Age"] == null)
                Response.Redirect("/AgeRestricted/?ReturnUrl=" + referrer);


    }

如果我多次调用此页面加载我的 URLS 会变得非常难看。

http://localhost:14028/AgeRestricted/?ReturnUrl=http://localhost:14028/AgeRestricted/?ReturnUrl=http://localhost:14028/

就像它连接到现有的一样。我有办法防止这种情况吗?

我基本上想要它,这样我的 ReturnUrl QueryString 中只有 1 个参数,这样如果它已经有值就不会重复。

4

2 回答 2

1

您可以通过使用Uri该类来仅获取引用者的部分而无需查询字符串来执行此操作。例如:

if (Request.Cookies["Age"] == null)
{
    string referrer = Request.UrlReferrer.GetLeftPart(UriPartial.Path);
    Response.Redirect(referrer);
}

有关 的更多信息GetLeftPath,请参阅:http: //msdn.microsoft.com/en-us/library/system.uri.getleftpart.aspx

于 2013-07-10T01:00:41.133 回答
0

这是解决问题的代码。不知道为什么我的最后一个答案被删除了。

 string url = HttpContext.Current.Request.Url.AbsoluteUri;

            if (Request.Cookies["Age"] == null)
                Response.Redirect("/AgeRestricted/?ReturnUrl=" + url);
于 2013-07-11T15:43:06.440 回答