我们在AppHarbor上托管并使用他们的memcacher插件,如文档中所述进行设置:
<sessionState cookieless="false" regenerateExpiredSessionId="true" mode="Custom"
customProvider="MemcachedSessionProvider" xdt:Transform="Insert">
<providers>
<add name="MemcachedSessionProvider"
type="MemcachedProviders.Session.SessionStateProvider,MemcachedProviders"
dbType="none" />
</providers>
</sessionState>
我们看到的问题只能通过以下方式重现:
此时服务器发出302重定向到无效的URL,例如: http://appfail.net/(F(FckQ4UX0zD_WSxk_adpkk3YysHsYQS4TSVpljxmswyBqEAZ1q-YhW4KePrpYQfJ4KlLGaiyje_TbpeSARVyI8LioQ7Jp5EIc0Zm9u99IqRRkkoMh_wr-jrsrvje4J7KpUt1n87xEMzMeqHzpMz9ksm42IqNnf3F9B6GBwrnuA5EY_YsV0))/Applications
该网址似乎包含SessionID,其格式与IIS用于无Cookie会话的格式相同。这也是有道理的,因为IIS可以配置为使用基于UserAgent的无会话cookie - 因此它只能在移动safari中重现(尽管我不确定为什么它只发生在t.co/重定向,而不是直接加载页面)
奇怪的是 - 我们关闭了无cookie会话!正如您在上面的会话状态中所看到的那样。 我也尝试过设置'cookieless =“UseCookies”'...没有运气!
我已经添加了日志记录,甚至验证了系统在运行时配置为“UseCookies”。
所以,我想知道如何使用RedirectToAction()将用户重定向到一个无cookie的URL?
我想知道这是否与自定义会话状态提供程序相关 - MemcachedProvider?或者它是更基本的东西?
由于 萨姆
答案 0 :(得分:7)
可能是由于ASP.NET客户端功能检测错误,请检查此问题:Asp.Net Forms Authentication when using iPhone UIWebView
答案 1 :(得分:2)
Microsoft released a Hotfix in September 2011解决了我在Windows 8预览版中与IE10类似的问题。