小编Sam*_*Sam的帖子

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

我们在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>
Run Code Online (Sandbox Code Playgroud)

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

  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/重定向,而不是直接加载页面)

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

我已经添加了日志记录,甚至验证了系统在运行时配置为"UseCookies".

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

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

谢谢山姆

c# asp.net cookies mobile appharbor

7
推荐指数
1
解决办法
2744
查看次数

如何使用ASP.NET MVC视图预编译与App_Code助手?

我试图启用视图编译,以加快我的ASP.NET MVC3网站加载.我的网站托管在AppHarbor上.

但是,我的视图使用了App_Code文件夹中定义的MVC3视图助手.

当我尝试加载我的网站时,我得到:"目录'/ App_Code /'是不允许的,因为应用程序是预编译的."

如何停止将App_Code文件夹部署到Web服务器,但是仍然预编译了App_Code帮助程序?

我已经尝试将帮助程序更改为Content = None,但这会导致AppHarbor构建错误,因为在预编译期间无法找到帮助程序文件.

view-helpers precompile asp.net-mvc-3 appharbor

5
推荐指数
1
解决办法
1302
查看次数