【问题标题】:ASP.NET Cookieless Session URL Issue ONLY in mobile safari仅在移动 safari 中的 ASP.NET 无 Cookie 会话 URL 问题
【发布时间】:2012-06-12 14:25:21
【问题描述】:

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

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

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

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

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

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

谢谢 山姆

【问题讨论】:

  • 您是否尝试过放弃 MemcachedProvider 并仅在一名工人上运行测试站点以查看是否可以重现?

标签: c# asp.net mobile cookies appharbor


【解决方案1】:

可能是ASP.NET客户端能力检测错误,请检查这个问题:Asp.Net Forms Authentication when using iPhone UIWebView

【讨论】:

  • 谢谢!我添加了一个 .browser 文件,将默认条目设置为 cookies=true,它已经解决了这个问题!
【解决方案2】:

Microsoft released a Hotfix in September 2011 解决了我在 Windows 8 预览版中使用 IE10 时遇到的类似问题。

【讨论】:

    猜你喜欢
    • 2014-03-04
    • 2012-03-11
    • 2017-06-15
    • 1970-01-01
    • 2013-02-18
    • 2015-06-29
    • 1970-01-01
    • 2012-05-09
    • 1970-01-01
    相关资源
    最近更新 更多