我正在编写一个使用表单身份验证的Asp.net MVC 2应用程序,目前我的iPhone应用程序在通过Web进行身份验证/登录时遇到问题.我们开发了一个使用UIWebView控件的简单iPhone应用程序.在这个阶段,所有应用程序都会导航到我们的Asp.Net网站.简单吧?问题是,用户无法通过登录页面.重复步骤是:
但是用户然后被重定向到BACK登录屏幕!
我已经对此进行了一些广泛的调试,我所知道的是:
cookie被发送到客户端,客户端正在存储cookie.在iPhone调试器中验证了这一点,并使用Javsascript在页面上显示cookie数据.cookie正被发送回服务器.在Visual Studio调试器中验证了这一点.它是正确的cookie(它与设置的相同).User.Identity.IsAuthenticated属性由于某种原因返回false,即使auth cookie包含在Request对象中.我已经确认iPhone应用程序已设置为接受cookie,并且它们在客户端上.
这是有趣的事情:如果您在iPhone上打开Safari浏览器并直接访问我们的网站,它可以正常工作.
它在iPad上也具有相同的行为,因为它没有通过登录屏幕.这种模拟器和设备上的重复.
这个网站已经通过IE 7-8,Safari(适用于Windows),Blackberry,IEMobile 6.5,Phone 7进行了测试,可以找到它.唯一不适用的情况是iPhone应用程序中的UIWebView.
我的原生iphone应用程序,使用带jquery的phonegap(基于浏览器)开发,可以登录到Web服务器,登录后用户可以访问他们的资源.一旦用户通过身份验证,服务器就会在cookie中设置会话ID.
我对这个方案没有任何问题,但我想知道cookie存储在哪里,因为当我做警报(document.cookie)时,它返回空字符串.
是否有可能jquery中的ajax函数在内部管理cookie并将其发送给同一域的每个请求?