我正在编写一个使用Forms Authentication的Asp.net MVC 2应用程序,目前我的iPhone应用程序在通过Web进行身份验证/登录时遇到问题。我们已经开发了一个使用UIWebView控件的简单iPhone应用程序。在此阶段,所有应用程序要做的就是导航到我们的Asp.Net网站。简单吧?问题是,用户无法通过登录页面。复制步骤为:打开iPhone应用程序。该应用程序导航到主页。用户未通过身份验证,因此将他们重定向到登录屏幕/页面用户输入正确的用户名和密码。点击提交。在服务器端,使用FormsAuthentication.GetAuthCookie对用户进行身份验证并生成cookie并将其发送给客户端。服务器发送被重定向以将用户发送到正确的主页。但用户然后被重定向返回到登录界面!我已经对此进行了一些广泛的调试,我知道的是:cookie正在发送到客户端,并且客户端正在存储cookie。在iPhone调试器中以及通过使用Javsascript在页面上显示cookie数据进行了验证。cookie被发送回服务器。在Visual Studio调试器中对此进行了验证。它是正确的cookie(与设置的cookie相同)。尽管auth cookie包含在Request对象中,由于某种原因,属性User.Identity.IsAuthenticated仍返回false。我已验证iPhone应用程序已设置为接受Cookie,并且它们在客户端上。这是一件有趣的事情:如果您在iPhone上打开Safari浏览器并直接转到我们的网站,它会很好地工作。它在iPad上也具有相同的行为,因为它不会超出登录屏幕。在仿真器和设备上都如此。该网站已经通过IE 7-8,Safari(适用于Windows),Blackberry,IEMobile 6.5,Phone 7进行了测试,并且可以正常运行。唯一无法使用的情况是iPhone应用程序中的UIWebView。
3 回答
尚方宝剑之说
TA贡献1788条经验 获得超4个赞
我们发现的解决方案是创建一个文件(generic.browser),并包含此xml以告知Web服务器“ Mozilla”和“默认浏览器”设置均应支持cookie。
<browser refID="Mozilla" >
<capabilities>
<capability name="cookies" value="true" />
</capabilities>
</browser>
- 3 回答
- 0 关注
- 476 浏览
添加回答
举报
0/150
提交
取消