C# 在ASP.NET中维护整个应用程序的SessionID

C# 在ASP.NET中维护整个应用程序的SessionID,c#,asp.net,session,C#,Asp.net,Session,我正在实施电子商务项目,我需要静态SessionID,有没有办法在整个应用程序中维护SessionID 但是我该如何实现这种方法。阅读您提到的另一篇文章,听起来两个会话都没有被使用,因此每个请求都会生成一个新的会话ID。若要解决此问题,只需在第一个请求时在会话中存储某些内容(任何内容),以确保其保持不变 Session["something"] = "anything"; 或者,可能是用户不允许Cookie,这也会在每个请求上导致新会话。因此,您的用户需要允许cookie 或者您可以使用无co

我正在实施电子商务项目,我需要静态SessionID,有没有办法在整个应用程序中维护SessionID
但是我该如何实现这种方法。

阅读您提到的另一篇文章,听起来两个会话都没有被使用,因此每个请求都会生成一个新的会话ID。若要解决此问题,只需在第一个请求时在会话中存储某些内容(任何内容),以确保其保持不变

Session["something"] = "anything";
或者,可能是用户不允许Cookie,这也会在每个请求上导致新会话。因此,您的用户需要允许cookie

或者您可以使用无cookie会话


我想另一篇文章解释得很好。

现在我明白你的意思了

您必须在Global.asax文件中执行类似的操作

protected void Session_Start(Object sender, EventArgs e)
{
  Session["DummyData"] = "dummy";
}
在创建会话对象后的第一刻向其添加任何值,可以避免获得不同的sessionid,因为会话对象尚未被访问

编辑

不管怎样,看看你最后的评论,我看不出这在某种程度上影响了你的发展。也许你想得太多了。如果你只需要避免用户购买超过X的产品,你就不关心这个问题。当第一个产品添加到会话中时,相同的SessionID将在连续的请求中使用,直到过期。

您的意思是所有用户都应该共享相同的会话吗,或者您是否担心个别用户的会话id会发生变化?您是否可以添加更多关于内置会话mecanism错误的详细信息?@Ray:不,所有用户都没有共享相同的SessionID,每个用户的SessionID都是相同的。@Claudio:实际上我想实现,用户最多只能购买5个会话id(这是动态值)如果有任何方法可以实现这一点,请告诉我。只有一个好方法可以实现这一点。让用户创建一个帐户,并根据其用户帐户检查其会话。如果打开了两个浏览器,并且以同一用户身份登录,则可以检测该值是否超出限制。但如果没有某种用户登录,您将很难做到这一点。使用IP地址是一种选择,但仍然不可靠。+1:在更好地理解OP的问题后,我删除了我的帖子。这似乎更像是建立会话的问题,而不是由于web场而更改会话id的问题。最好的实现方法是什么,用户在会话中不能购买超过5个(这是动态值)的产品。@Claudio:Redi,我使用的是集合,但它们是任何其他类型的条件,比如用户添加的产品不超过2个(productId=2),但他可以再添加4个产品(productId=7),但总产品不应超过5个,类似于这样。