Internet Explorer、Safari、Opera 从 returnUrl 中删除哈希值

发布于 2024-12-08 13:30:00 字数 682 浏览 1 评论 0原文

当用户发送到 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 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

甜是你 2024-12-15 13:30:00

您必须使用 %23 转义哈希,

因此:

?ReturnUrl=%2fFolder1#Hash

变为:

?ReturnUrl=%2fFolder1%23Hash

在 IE9 中测试。

You have to escape the hash using %23

so this:

?ReturnUrl=%2fFolder1#Hash

becomes:

?ReturnUrl=%2fFolder1%23Hash

Tested in IE9.

等风来 2024-12-15 13:30:00

哈希后的所有内容都不会发送到服务器。
好处是您可以在客户端代码和服务器代码之间共享 cookie。
我遇到了同样的问题,最终将我的哈希值添加到一个 cookie 中

// Note that I am using 3rd part library for cookies
<script src="~/scripts/jquery-1.10.2.js"></script>
<script src="~/scripts/jquery.cookie.js"></script>
<script type="text/javascript">
    $(function () {
        var cookieKey = "MYHASH";
        $.removeCookie(cookieKey);
        $.cookie(cookieKey, window.location.hash, { expires: 7, path: '/' });
    })
</script>

稍后,当我在控制器值 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

// Note that I am using 3rd part library for cookies
<script src="~/scripts/jquery-1.10.2.js"></script>
<script src="~/scripts/jquery.cookie.js"></script>
<script type="text/javascript">
    $(function () {
        var cookieKey = "MYHASH";
        $.removeCookie(cookieKey);
        $.cookie(cookieKey, window.location.hash, { expires: 7, path: '/' });
    })
</script>

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.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文