C# 处理会话超时数据丢失
在我编写的一个模块中,我将用户添加到购物车中的项目存储在会话中。 您将如何处理这种情况:用户在会话时间结束后向购物车添加新项目?C# 处理会话超时数据丢失,c#,asp.net,.net,asp.net-mvc,asp.net-mvc-3,C#,Asp.net,.net,Asp.net Mvc,Asp.net Mvc 3,在我编写的一个模块中,我将用户添加到购物车中的项目存储在会话中。 您将如何处理这种情况:用户在会话时间结束后向购物车添加新项目? 我可以重定向到主页,但即使会话未被使用,我也会导致重定向发生。比如用户没有登录,或者他的购物车是空的 如何处理应用程序中的会话超时?另一种方法是将购物车存储在cookie中。另一种方法是将购物车存储在cookie中。在这种情况下,我可能不使用内置的ASP.NET会话提供程序。相反,您可以为客户的购物车会话设置一个持久cookie,该会话具有一个加密的ID,该ID映射到
我可以重定向到主页,但即使会话未被使用,我也会导致重定向发生。比如用户没有登录,或者他的购物车是空的
如何处理应用程序中的会话超时?另一种方法是将购物车存储在cookie中。另一种方法是将购物车存储在cookie中。在这种情况下,我可能不使用内置的ASP.NET会话提供程序。相反,您可以为客户的购物车会话设置一个持久cookie,该会话具有一个加密的ID,该ID映射到存储在数据库中的会话,该数据库存储购物车的内容 这样,您就不必担心超时,会话将在cookie的生命周期内继续进行
(如果您确实需要使用ASP.NET会话,可能您已经有了使用它的代码,那么您可以将超时设置为非常大的数字,并将配置为使用SQL Server。)在这种情况下,我可能不使用内置的ASP.NET会话提供程序。相反,您可以为客户的购物车会话设置一个持久cookie,该会话具有一个加密的ID,该ID映射到存储在数据库中的会话,该数据库存储购物车的内容 这样,您就不必担心超时,会话将在cookie的生命周期内继续进行
(如果您真的需要使用ASP.NET会话,可能您已经有了使用它的代码,那么您可以将超时设置为一个非常大的数字,并将配置为使用SQL Server。)您的页面可以运行javascript计时器,当时间用完时,页面将重定向到另一个页面,例如登录,使用查询字符串参数作为标志。当使用x标志调用登录屏幕时,购物车将保存到数据库中以进行安全保管。关键是使超时时间短于会话超时时间 添加: 每个页面上的Javascript:
<body onload="PageLoad();">
<script type="text/javascript">
function PageLoad()
{
var t = setTimeout("ExceuteTimeOutTransfer()", 15000);
}
function ExceuteTimeOutTransfer()
{
window.location.href = "http://localhost/webplaying/Login.aspx?timeout=Y";
}
</script>
您的页面可以运行javascript计时器,当时间用完时,页面将重定向到另一个页面,例如登录,并使用查询字符串参数作为标志。当使用x标志调用登录屏幕时,购物车将保存到数据库中以进行安全保管。关键是使超时时间短于会话超时时间 添加: 每个页面上的Javascript:
<body onload="PageLoad();">
<script type="text/javascript">
function PageLoad()
{
var t = setTimeout("ExceuteTimeOutTransfer()", 15000);
}
function ExceuteTimeOutTransfer()
{
window.location.href = "http://localhost/webplaying/Login.aspx?timeout=Y";
}
</script>
购物车最多可以有3500多件物品。你还认为饼干是个好主意吗?存储每次部分购买的所有数据?处理数据库中的临时数据触发器之类的工作太多了。“如何配置会话状态提供程序以使用SQL Server?”?它有什么作用?谢谢。只有加密的ID存储在cookie中(cookie应该用来存储超过4KB的数据)。这用于引用数据库中存储的会话数据。添加了配置不同会话状态模式的链接。购物车最多可包含3500多个项目。你还认为饼干是个好主意吗?存储每次部分购买的所有数据?处理数据库中的临时数据触发器之类的工作太多了。“如何配置会话状态提供程序以使用SQL Server?”?它有什么作用?谢谢。只有加密的ID存储在cookie中(cookie应该用来存储超过4KB的数据)。这用于引用数据库中存储的会话数据。添加了配置不同会话状态模式的链接。+1很好的方法!你能和我们分享一段代码吗?如何让这神奇的事情发生?如果用户打开页面一个小时却没有看到重定向会怎么样?+1很好的方法!你能和我们分享一段代码吗?如何让这神奇的事情发生?如果用户将页面打开一个小时,却没有看到重定向,该怎么办?