大佬教程收集整理的这篇文章主要介绍了jquery – 从另一个ASP.NET应用程序保持相关ASP.NET应用程序的会话处于活动状态,大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。
>申请1
>应用1 – >申请2
>应用2 – >申请1
应用程序1是WebForms(asp.net framework 2.0),Application 2是ASP.NET MVC 3(框架4.0)
当用户在应用程序2上时,我想在应用程序1上保持会话活动.
在构建应用程序1时,我们构建了一个“KeepSessionAlive.ashx”处理程序,它在请求时简单地执行Session(“KeepSesssionAlive”)= datetiR_522_11845@e.Now(),如this article中所述.我们这样做是因为这是一个评估应用程序,并且在某些情况下对于较难测试的部分,用户在选择答案之前可能需要很长时间.这是代码:
Public Class KeepSessionAlive : Implements IhttpHandler,IrequiresSessionState Public Sub Processrequest(ByVal context As httpContext) Implements IhttpHandler.Processrequest context.Session("KeepSessionAlive") = datetiR_522_11845@e.Now End Sub Public ReadOnly Property IsReusable() As Boolean Implements IhttpHandler.IsReusable Get Return false End Get End Property End Class
然后,我只是使用jQuery在Application 1中定期调用此处理程序:
$.post(“KeepSessionAlive.ashx”,null,function(){});
所以,我想我可以使用$.ajax()从Application 2调用相同的处理程序,我甚至考虑使用jsonp,但这似乎不起作用.我编写代码将KeepSessionAlive.ashx中的所有会话变量记录到一个文件中,甚至通过jsonp响应返回东西,数据看起来正确.
但是,做一个测试,我在应用程序2中徘徊足够长的时间,以便应用程序1的会话到期,然后尝试从应用程序1转换 – >应用程序2,当我到达应用程序1中的返回页面时,我遇到了一个System.NullReferenceException:未将对象引用设置为对象的实例.错误,因为我试图引用Session中的一个对象.会话中唯一的值是Session(“KeepSessionAlive”).我假设这是因为它创建了一个新会话,但如果是这样的话,为什么我的测试会记录会话值,显示所有Application 1的会话变量?
<img id="keepAliveIMG" width="1" height="1" src="/img/ui/spacer.gif?" alt="" /> <script language="javascript" type="text/javascript"> var myImg = document.getElementById("keepAliveIMG"); if (myImg){ window.seTinterval(function(){ myImg.src = myImg.src.replace(/\?.*$/,'?' + Math.random()); },6000); } </script>
然后在应用程序中使用iframe,使用图像重新加载来加载其他应用程序页面.或者通常使用iframe,因为使用iframe,您可以保留来自2个不同站点的Cookie更新.
<iframe src="application2.aspx" width="0" height="0"></iframe>
以上是大佬教程为你收集整理的jquery – 从另一个ASP.NET应用程序保持相关ASP.NET应用程序的会话处于活动状态全部内容,希望文章能够帮你解决jquery – 从另一个ASP.NET应用程序保持相关ASP.NET应用程序的会话处于活动状态所遇到的程序开发问题。
如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。
本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。