ASP.NET无Cookie会话URL仅在移动Safari中发布

我们在AppHarbor上托管并使用他们的memcacher插件,如他们的文档中所述进行设置:

     

我们看到的问题只能通过以下方式重现:

  1. 在iOS Safari(或Twitter iphone应用程序的内置webkit浏览器)中将app缩短为appfail.net的URL: http : //t.co/6tRXopEJ
  2. 点击我们的“运行演示”按钮,然后使用我们的模拟账户自动登录用户。

此时服务器发出302重定向到一个无效的URL,例如: http://appfail.net/(F(FckQ4UX0zD_WSxk_adpkk3YysHsYQS4TSVpljxmswyBqEAZ1q-YhW4KePrpYQfJ4KlLGaiyje_TbpeSARVyI8LioQ7Jp5EIc0Zm9u99IqRRkkoMh_wr-jrsrvje4J7KpUt1n87xEMzMeqHzpMz9ksm42IqNnf3F9B6GBwrnuA5EY_YsV0))/Applications

该URL似乎包含SessionID,其格式与IIS用于无Cookie会话的格式相同。 这也是有道理的,因为IIS可以配置为使用基于UserAgent的无会话cookie – 因此它只能在移动Safari中重现(尽管我不确定为什么它只发生在t.co / redirect中,而不是在直接加载页面)

奇怪的是 – 我们关闭了无cookie会话! 正如您在上面的会话状态中所看到的那样。 我也尝试过设置’cookieless =“UseCookies”’…没有运气!

我已经添加了日志记录,甚至validation了系统在运行时配置为“UseCookies”。

所以,我想知道我们如何才能将用户重定向到一个cookieless-URL,只需使用RedirectToAction()?

我想知道这是否与自定义会话状态提供程序相关 – MemcachedProvider? 还是更基本的东西?

谢谢山姆

可能是由于ASP.NET客户端function检测错误,请在使用iPhone UIWebView时检查此问题: Asp.Net Forms身份validation

Microsoft 在2011年9月发布了一个Hotfix,它解决了我在Windows 8 Preview Release中与IE10类似的问题。