我的ReturnUrl正在复制
本文关键字:复制 ReturnUrl 我的 | 更新日期: 2023-09-27 18:21:39
我有一个页面,如果你没有我想要的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/
它就像是连接到现有的。我有办法防止这种情况发生吗?
我基本上想拥有它,这样我的ReturnUrlQueryString中就只有一个参数,如果已经有值的话,它就不会重复。
您可以通过使用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
以下是修复该问题的代码。不知道为什么我的最后一个答案被删除了。
string url = HttpContext.Current.Request.Url.AbsoluteUri;
if (Request.Cookies["Age"] == null)
Response.Redirect("/AgeRestricted/?ReturnUrl=" + url);