在iPad上使用jQueryMobile时,不存储ASP.NET身份验证cookie

时间:2011-06-02 09:45:32

标签: asp.net asp.net-mvc forms-authentication jquery-mobile

我有一个使用jQueryMobile的ASP.NET MVC2应用程序。它是一个安全的应用程序,我在MVC2框架中使用ASP.NET身份验证。

我正在通过web.config使用标准身份验证:

<authentication mode="Forms">
  <forms loginUrl="~/Account/LogOn" timeout="2880" />
</authentication>

我使用Authorize属性保护某些控制器:

[Authorize]
public class ClientController : Controller

我的所有网页都基于相同的母版页,该母版页具有顶级容器div,如下所示:

<div class="page" data-role="page">

这一切都完美适用于Chrome。但是,在iPad上,身份验证不起作用。似乎认证cookie永远不会存储在客户端上。即使我输入正确的凭据,iPad仍会显示登录页面。我已经尝试将Safari Accept Cookies设置设置为“Always”。

有没有人在iPad上使用ASP.NET MVC2身份验证部署jQueryMobile应用程序是否成功?感谢。

编辑:好的,我已经确定cookie确实存储在客户端上,但似乎jQueryMobile + Safari以某种方式拼凑以持续显示登录页面而不是将我重定向到应根据登录重定向显示的页面。

2 个答案:

答案 0 :(得分:1)

我相信我有答案。关于iPad,您需要专门设置web.config以强制使用cookie。我在web.config中的身份验证设置现在如下所示:

<authentication mode="Forms">
      <forms loginUrl="~/Account/LogOn" timeout="2880" 
             cookieless="UseCookies" 
             />
    </authentication>

解决问题的是cookieless =“UseCookies”条目。默认值为UseDeviceProfile。一定是iPad没有一致的UseDeviceProfile制度。在iPad上,它有时会起作用,有时它却没有。不要问我为什么。它现在似乎一直在发挥作用。

答案 1 :(得分:0)

我同意Journeyman,这就是我所使用的。但是,如果他们将网站添加到主屏幕,那么这些设置仍然无效。

有些人声称他们在这种情况下不存储cookie。 见相关问:iPhone/iPad WebApps don't allow cookies?