Response.Redirect(Request.Url.AbsolutePath)总是“安全”吗?

时间:2011-07-28 23:42:04

标签: asp.net url

我需要重定向回当前页面减去任何查询参数。

我刚刚找到Request.Url.AbsolutePath,看起来它只提供传递给Response.Redirect()的票证。

似乎可以在我的开发机器上工作了。有没有人知道重定向到这个属性值的任何潜在问题?在所有情况下都很难确认它是“安全的”。

2 个答案:

答案 0 :(得分:2)

如果您在内部“重写”URL,则可能会出现问题。例如,用户请求“/team.aspx”,但在内部您传输执行或将URL重写为“/page.aspx?id=137”。

就个人而言,我更喜欢使用Request.RawUrl(它总是本地的),你可以剥离查询字符串。

删除请求的主机部分不是问题,因为HTTP重定向可以是绝对路径上的路径(“/ foo / bar”),浏览器将保留协议,端口和主机名。

答案 1 :(得分:0)

我会使用Request.Url.OriginalString。

绝对路径会删除网址的主机部分。

看看这个:http://wdevs.blogspot.com/2009/03/url-properties-of-request-to-aspnet.html