获取带哈希的完整URL以用作ReturnUrl

10

我有这样的网址

localhost/Login/LogOn?ReturnUrl=/#&q=my%20search%20word&f=1//447044365|2//4

经过身份验证后,我需要获取哈希参数以在应用程序中导航。

我尝试像这样捕获它

<input name="returnUrl" value="<%= ViewContext.HttpContext.Request.Url.PathAndQuery %>" type="hidden" />
但结果是
/Login/LogOn?ReturnUrl=/

我试图从URL中去掉“/#”,但是我得到了整个URL。但是我需要按原样使用这个URL。

为什么URL被截断了?

1个回答

23

浏览器不会将哈希片段发送到服务器,它只在客户端使用。如果需要它,您必须通过客户端脚本访问它。


1
谢谢!我刚刚添加了$("#returnUrl").val(location.hash); 将其放置在输入框中。 - podeig
5
使用类似于客户端URL处理的方法时,要注意注入/劫持攻击。确保该值的使用者不可信并对其进行验证。 - ProVega

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接