C# 设置特定会话的超时

C# 设置特定会话的超时,c#,asp.net,session,C#,Asp.net,Session,如何在ASP.NET中设置特定于会话的超时?有可能吗? 我的web应用程序中有两个或多个session,我需要设置: Session["foo"] //expire in 14minutes Session["baa"] //expire in 30minutes 我想解决这个问题,如果可能的话,不要使用cookies 提前谢谢 您可以在Web.config文件中配置会话超时: <configuration> <sessionstate mode="inproc"

如何在ASP.NET中设置特定于会话的超时?有可能吗? 我的web应用程序中有两个或多个session,我需要设置:

Session["foo"] //expire in 14minutes
Session["baa"] //expire in 30minutes
我想解决这个问题,如果可能的话,不要使用cookies


提前谢谢

您可以在Web.config文件中配置会话超时:

<configuration>
    <sessionstate mode="inproc"
                  cookieless="true"
                  timeout="14" />
</configuration>

这是ASP.NET的默认模式(InProc)。正如RocktheSixtring在他的评论中所说的,您不能为会话中的单个对象配置超时,只能将会话作为一个整体进行配置


或
会话[“用户”]=textbox\u username.txt

由于其他问题将作为此问题的重复项关闭,因此我想在此处添加此选项,以供可能发现此选项有用的人使用

您可以使用以下命令手动设置会话超时:

Session.Timeout = 60
您可以在此处阅读更多内容:

用于特定会话 假设您希望使此会话的超时[“foo”]=14分钟 你可以这样做

DateTime timenow=DateTime.now;
DateTime timeafter14min=timenow.AddMinuits(14);

if(DateTime.Now>timeafter14min)
{
 HttpContext.Current.Session["foo"]=null;
}

会话未过期但已清除

这些不是不同的“会话”,它们是不同的会话“变量”。一个用户一次只有一个会话。也许您正在考虑使用缓存,在缓存中可以设置每个项目的过期时间。@SteveWellens您能告诉我们如何为不同的变量设置超时时间吗
DateTime timenow=DateTime.now;
DateTime timeafter14min=timenow.AddMinuits(14);

if(DateTime.Now>timeafter14min)
{
 HttpContext.Current.Session["foo"]=null;
}