为会话生成两个id

时间:2010-11-01 15:39:28

标签: asp.net

我在asp.net上有一个关于会话的问题,我正在制作一个asp.Net应用程序,我正在使用session来存储user_id和密码。我了解到会话是用户与应用程序交互的特定时间。我还了解到我可以在进程中使用状态服务器和sql server等进程来存储会话。当第一次用户点击服务器然后一个uniqeId或令牌以cookie形式存储在用户端,或者如果没有启用cookie,那么munched URL用于进一步与服务器通信,所以我在我的应用程序中混淆了pint我在一个会话中使用userName并在一个会话中使用密码,并在一个会话中存储一些值,因此我想知道我在应用程序中使用的每个会话都会生成一个唯一的id(令牌),或者生成一个对应的每个令牌该应用程序的用户,即使我们正在使用任何会话数。

我想问这样的事情

session["userNme"]=userName;
session["password"]=password;

所以我想知道用户何时登录然后将其用户ID和密码保存在会话中,并且在每个页面上检查用户ID和密码是否会话到期然后发送到登录页面,所以我想知道用户何时登录会为userId生成两个令牌,为密码生成一个令牌是真的

1 个答案:

答案 0 :(得分:2)

您的困惑来自混合会话和会话变量。

您使用的是会话变量,而不是会话。每个用户只有一个会话对象,该对象可以包含多个会话变量。

由于每个用户只有一个会话对象,每个用户只有一个会话ID。

会话对象存储在服务器上(或状态服务器上),会话ID将一个用户与一个会话对象连接起来。

会话对象有一个Items集合,其中包含会话变量,当您在会话对象之后放置括号时,您正在访问此集合中的变量。

因此,您的代码是此的快捷方式:

Session.Items["userNme"] = userName;
Session.Items["password"] = password;