Internet Explorer、Safari、Opera 从 returnUrl 中删除哈希值
当用户发送到 LogOn 控制器时,我想在 returnURL 中保留哈希值,但 IE7-9/Safari/Opera 将其删除。
例如,我尝试这个 URL
http://localhost:18314/#&t={ DA3DB617-F9A3-4668-93E6-BBB2E37B928F}
用户未经授权并发送到登录控制器。我在 IE7-9、Safari、Opera 中得到这个:
http://localhost:18314/Login /LogOn?ReturnUrl=%2f
但在 FireFox 和 Chrome 中:
http://localhost:18314/Login/LogOn?ReturnUrl=%2f#& t={DA3DB617-F9A3-4668-93E6-BBB2E37B928F}
为什么以及如何修复?!
谢谢! :-)
I want to keep hash value in returnURL when user is sent to LogOn controller, but IE7-9/Safari/Opera removes it.
For example, I try this URL
http://localhost:18314/#&t={DA3DB617-F9A3-4668-93E6-BBB2E37B928F}
User is not authorized and sent to LogOn controller. I get just this in IE7-9, Safari, Opera:
http://localhost:18314/Login/LogOn?ReturnUrl=%2f
But in FireFox and Chrome:
http://localhost:18314/Login/LogOn?ReturnUrl=%2f#&t={DA3DB617-F9A3-4668-93E6-BBB2E37B928F}
Why and how to fix?!
Thanks! :-)
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
您必须使用 %23 转义哈希,
因此:
变为:
在 IE9 中测试。
You have to escape the hash using %23
so this:
becomes:
Tested in IE9.
哈希后的所有内容都不会发送到服务器。
好处是您可以在客户端代码和服务器代码之间共享 cookie。
我遇到了同样的问题,最终将我的哈希值添加到一个 cookie 中
稍后,当我在控制器值 Request.Cookies["MYHASH"]; 中处理连接的用户时
会给我哈希值,这样我就可以重定向用户。我确信通过一些修改这可以帮助您解决问题。
Everything after hash is not sent to server.
Good thing is that you can share cookies between your client code and server code.
I had same problem and ended up to add my hash value into one cookie
Later, when I am handling connected user in my controller value Request.Cookies["MYHASH"];
will give me hash value so I can redirect user. I am sure with some modifications this can help you solve the problem.