登录后从服务器发出重定向时,使用:
return Redirect("/Some/Location");
这在除 iPad 上的 Chrome Mobile 之外的任何浏览器中都能完美运行。对于此浏览器,重定向响应中的 Location 格式为:
Location: /(F(kE-dzlf...lots of random characters))/Some/Location
问题是,为什么这个随机字符串会添加到从服务器返回的重定向 URL 中?
不幸的是,由于各种路由问题,这会给应用程序带来严重的问题。
在进一步调查中,我们发现在 Windows 上使用桌面 Chrome 并欺骗浏览器用户代理与 iPad 上的 Chrome Mobile 相同的问题可以重现相同的问题,例如。
Mozilla/5.0 (iPad; CPU OS 6_1_3 like Mac OS X) AppleWebKit/536.26 (KHTML, like Gecko) CriOS/27.0.1453.10 Mobile/10B329 Safari/8536.25
似乎 MVC 服务器上的特定用户代理字符串发生了一些奇怪的行为。甚至上述字符串的各种子字符串也会产生相同的行为。
我们推测这可能是某种 cookie 传递方法,但我们不确定。
谢谢。
编辑: 这个问题的解决方案可以在这里找到: Asp.Net Forms Authentication when using iPhone UIWebView