我正在编写一个使用表单身份验证的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.
我有GenericHandler和anonymousIdentification的问题.
基本上,如果<anonymousIdentification enabled="true" />在Web配置中打开,每当向服务器发送JQuery GET/POST请求时,该请求将在新用户和新用户会话下执行.
有没有办法缓解这种情况?我需要访问当前用户的会话变量......真的很令人沮丧!
我们正在构建一个支持AJAX的Web应用程序,它向服务器发出多个异步请求.这些服务器请求中的每一个都是长时间运行的服务器任务,每个服务器任务都将JSON对象返回到html页面.这些调用中的每一个都需要对Session对象进行读/写访问.
但是,当多个异步任务正在进行时,ASP.NET会锁定会话对象,从而阻止第一个异步调用.所以这些异步调用永远不会并行发生.
PS:异步调用是PageMethod调用.
当使用并行异步调用时,首先不建议使用会话.有关设计此异步请求模型的任何其他建议将受到高度赞赏.
asp.net ×2
c# ×2
.net ×1
ajax.net ×1
asp.net-mvc ×1
asynchronous ×1
cookies ×1
jquery ×1
session ×1
uiwebview ×1