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很好的方法!你能和我们分享一段代码吗?如何让这神奇的事情发生?如果用户将页面打开一个小时,却没有看到重定向,该怎么办?