【问题标题】:.net IE8 Hash Url Redirect - asking again.net IE8 Hash Url Redirect - 再次询问
【发布时间】:2012-11-12 19:26:56
【问题描述】:

3 个月前有一篇帖子基本上问了我的问题,但我正在重新发布,因为没有答案可以处理我的情况。问题是当表单身份验证重定向到 ASP.NET 中的登录页面时,URL 的哈希部分会丢失(因为它从未发送到服务器),因此登录后,用户不会被定向到正确的位置。有人建议用户可以在重定向用户时存储散列值,但在我的情况下,这不起作用,因为用户正在从电子邮件中的链接访问页面,并且重定向发生在我的代码,但由于 web.config 表单配置而自动执行。有什么想法可以让用户在登录后被引导到正确的基于哈希的深层链接?

这是现有帖子:.net IE8 hash url redirect

这是一篇关于有人如何解决 Java 中相同的浏览器行为的帖子:http://forum.springsource.org/showthread.php?101421-Preserving-URL-anchor-when-redirecting

谢谢!

【问题讨论】:

    标签: internet-explorer url redirect hash login


    【解决方案1】:

    以下解决方法可解决此问题:

    1) 在电子邮件链接中,包含一个包含哈希地址编码版本的查询字符串变量,并包含哈希地址内容

            myUrl = baseUrl + "Account\" + acctId + "?route=%2FApplication%2FEntry" + "#/Application/Entry"
    

    2) 在登录页面的服务器端代码中,读取路由并使用它将哈希部分附加到登录页面将在登录后重定向到的 returnUrl:

            if (returnUrl.Contains("?route="))
            {
                string[] split = returnUrl.Split(new string[] { "?route=" }, StringSplitOptions.None);
                var route = Server.UrlDecode(split[1]);
                returnUrl = split[0] + "#" + route;  
            }
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2011-01-16
      • 1970-01-01
      • 2011-07-31
      • 1970-01-01
      • 2016-09-02
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多