gpt4 book ai didi

c# - 重置 session 超时而不在 ASP.Net 中进行回发

转载 作者:太空宇宙 更新时间:2023-11-03 20:20:17 25 4
gpt4 key购买 nike

有没有什么方法可以在不进行回发的情况下重置 session 超时?

在这种情况下,我不只是想对用户隐藏回发,我还需要在没有回发的情况下重置超时。

在我的页面上,我需要弹出一个对话框并通知用户他的 session 正在超时,如果他想让它保持事件状态,他需要单击一个按钮。现在,当他单击该按钮时,我不想回发该页面,因为这会导致数据出现问题。 (没有进入问题)


根据答案,我修改了代码,但仍然无法正常工作。docs.google.com/open?id=0B-Pl5DH2W9MvMDV6SUNiTXR0Z2M

最佳答案

要刷新 session ,您需要调用某些东西 - 我建议使用只显示空 gif 的简单处理程序。这是一个简单的代码:

public class JustEmptyGif : IHttpHandler ,IRequiresSessionState 
{
// 1x1 transparent GIF
private readonly byte[] GifData = {
0x47, 0x49, 0x46, 0x38, 0x39, 0x61,
0x01, 0x00, 0x01, 0x00, 0x80, 0xff,
0x00, 0xff, 0xff, 0xff, 0x00, 0x00,
0x00, 0x2c, 0x00, 0x00, 0x00, 0x00,
0x01, 0x00, 0x01, 0x00, 0x00, 0x02,
0x02, 0x44, 0x01, 0x00, 0x3b
};

public void ProcessRequest (HttpContext context)
{
context.Response.ContentType = "image/gif";
context.Response.Buffer = false;
context.Response.OutputStream.Write(GifData, 0, GifData.Length);
}

public bool IsReusable
{
get {
return false;
}
}
}

这段代码只是一个处理程序,比方说 EmptyImage.ashx,请注意我已经包含了 IRequiresSessionState,它可以调用和更新 session 。

现在唯一需要做的就是用一些脚本更新隐藏的图像,如:

<img id="keepAliveIMG" width="1" height="1" alt="" src="EmptyImage.ashx?" /> 
<script>
var myImg = document.getElementById("keepAliveIMG");
myImg.src = myImg.src.replace(/\?.*$/, '?' + Math.random());
</script>

我将随机数放在末尾,以避免将其保留在缓存中并强制它再次重新加载。这里没有回发,只是加载了一个小图片。

关于c# - 重置 session 超时而不在 ASP.Net 中进行回发,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13997778/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com