仅在移动野生动物园中 ASP.NET 无 Cookie 会话 URL 问题

本文关键字:NET Cookie 会话 问题 URL ASP 移动 动物园 | 更新日期: 2023-09-27 18:36:59

我们托管在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>

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

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

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

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

奇怪的是 - 我们关闭了无 cookie 会话!正如您在上面的会话状态中看到的那样。我也尝试过使用设置"cookieless="UseCookies"'...没有运气!

我添加了日志记录,甚至验证了系统在运行时配置为"UseCookie"。

所以,我想知道我们如何可能将用户重定向到无 cookie URL,仅使用 RedirectToAction()?

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

谢谢山 姆

仅在移动野生动物园中 ASP.NET 无 Cookie 会话 URL 问题

可能是由于客户端功能检测 ASP.NET 错误,请检查此问题: 使用iPhone UIWebView时 Asp.Net 表单身份验证

Microsoft 2011 年 9 月发布了一个修补程序,它解决了我在 Windows 8 预览版中使用 IE10 时遇到的类似问题。