Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/spring-mvc/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
ASP.NET页面缓存和会话变量_Asp.net_Session_Caching_Session Variables - Fatal编程技术网

ASP.NET页面缓存和会话变量

ASP.NET页面缓存和会话变量,asp.net,session,caching,session-variables,Asp.net,Session,Caching,Session Variables,我有一个asp.net网页,根据会话变量“IsLogged”显示链接登录或注销。我想在该页面中实现缓存。但在应用缓存后,登录/注销与会话变量不一致。解决此问题的最佳方法是什么,以便我也可以在该页面中应用缓存 谢谢, Partha我不确定您是如何具体缓存的,但您可以将页面分成两个用户控件(ascx) 您的aspx页面可能包含显示登录信息的用户控件(请确保在加载带有动态url的用户控件时,缓存会忽略它,因为地址每次都不同,如: yourSessionInfo.ascx?stopcache=32487

我有一个asp.net网页,根据会话变量“IsLogged”显示链接登录或注销。我想在该页面中实现缓存。但在应用缓存后,登录/注销与会话变量不一致。解决此问题的最佳方法是什么,以便我也可以在该页面中应用缓存

谢谢,
Partha

我不确定您是如何具体缓存的,但您可以将页面分成两个用户控件(ascx)

您的aspx页面可能包含显示登录信息的用户控件(请确保在加载带有动态url的用户控件时,缓存会忽略它,因为地址每次都不同,如:

yourSessionInfo.ascx?stopcache=32487239875
(数字可能只是当前时间的刻度)

您只需要在url中更改一些内容,使页面“看起来”不同并重新加载

然后将页面的其余部分放在另一个具有静态url的用户控件中:

yourRestOfPage.asx

请注意,url中没有任何更改,因此可以缓存页面


不确定这是否能解决您的确切问题,但至少应该让您走上正确的道路。

您必须检查您正在缓存的内容。如果您正在缓存更改会话信息的页面,那么会话信息将不会更新,并且对于您的
感觉,
会话变量在应该更新的时候不会更新所以你应该在你的注销和登录页面上禁用缓存。你如何对它们进行身份验证?你能检查身份验证cookie以查看它们是否已登录吗?