【问题标题】:Shopping cart session specific to instance特定于实例的购物车会话
【发布时间】:2013-04-24 00:40:54
【问题描述】:

奇怪 - 会话 - Inproc - 模式使用 cookie 名称 asp_net 会话 id,超时 20 ,在客户端之间共享,不确定!!! session 对于每个客户端应该是唯一的,但它是在客户端之间共享的!!

在我的 asp.net 应用程序中,购物车会话已在请求之间共享,不知道是如何发生的,它应该因请求而异,IIS 中的每个请求都应该有每个会话,但 IIS 中的所有请求已被此会话共享`public class PODCart {

#region Properties

public List<PODCartItem> Items { get; private set; }

#endregion

#region Singleton Implementation

public static readonly PODCart Instance;

static PODCart()
{
    if (HttpContext.Current.Session["C"] == null)
    {
        Instance = new PODCart();
        Instance.Items = new List<PODCartItem>();
        HttpContext.Current.Session["C"] = Instance;
    }
    else
        Instance = (PODCart)HttpContext.Current.Session["C"];
}

protected PODCart() { }

}`

虽然单例实现已经完成,但确实需要尽快知道修复。

【问题讨论】:

    标签: asp.net c#-4.0 shopping-cart


    【解决方案1】:

    您定义了一个单例类,并将其分配给每个会话。当然,它会使用相同的。

    看起来 PODCart 不应该是单例。

    【讨论】:

    • 但是,存储在 Session 中的购物车项目已被客户端使用??此更改也不能解决实际问题。购物车项目在客户之间共享,实际上不应该是每个客户都应该拥有购物车的每个实例。不确定!!
    • 静态Singleton是跨站点会话共享的,不是会话的问题。。谢谢指点。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-05-16
    • 2011-08-18
    • 1970-01-01
    • 1970-01-01
    • 2021-10-31
    相关资源
    最近更新 更多