Asp.net 如何在访问aspx页面时生成唯一的会话id

Asp.net 如何在访问aspx页面时生成唯一的会话id,asp.net,vb.net,session,Asp.net,Vb.net,Session,我有一个有许多aspx页面的网站,其中一个需要在用户进来时生成唯一的会话id。此会话id应为时间结构字符串,格式为YYYYMMDDHHMMSMS(年、月、日、小时、分钟、秒、毫秒)。因此,当用户访问这个特定的aspx页面时,用户将获得一个唯一的会话id。然后,当单击finish按钮时,会话id将被激发,并且永远不会被重用 这可能是可能的,但首先要做的是:时间戳不是唯一的,而且您永远不希望sessionid是可猜测的。这就是为什么默认sessionid是由加密随机数生成器生成的120位数字(详细信

我有一个有许多aspx页面的网站,其中一个需要在用户进来时生成唯一的会话id。此会话id应为时间结构字符串,格式为YYYYMMDDHHMMSMS(年、月、日、小时、分钟、秒、毫秒)。因此,当用户访问这个特定的aspx页面时,用户将获得一个唯一的会话id。然后,当单击finish按钮时,会话id将被激发,并且永远不会被重用

这可能是可能的,但首先要做的是:时间戳不是唯一的,而且您永远不希望sessionid是可猜测的。这就是为什么默认sessionid是由加密随机数生成器生成的120位数字(详细信息)。除非您和您的用户对整个世界都可以使用会话的内容感到满意,否则应该避免使用时间戳之类的确定性内容

有关会话状态安全的更多信息,请参阅

无论如何,我不知道如何将会话ID换成单个页面。您的浏览器将会话cookie与主机关联,而不是与单个页面关联,因此它会将您的会话cookie发送到站点上的每个页面。如果您没有在站点上的任何其他地方使用会话,那么您可以通过以下方式逃脱:

  • 通过使用
    EnableSessionState
    属性,禁用每个页面的会话状态(问题页面除外)。当用户单击finish按钮时,在处理程序中调用Session.Discard
  • 通过实现和注册自己的实现,使用自己的会话ID生成器。但是,请不要在你的身份证上使用时间戳

  • 它会像在DateTime字符串末尾添加Guid.NewGuid一样简单吗?会话本身有一个Id。如果您需要在会话中存储其他内容,只需将此数据添加到密钥,即
    会话(“MyKey”)=“我的数据”