ASP.NET的AspStateTempSessions表

时间:2011-08-22 05:46:34

标签: asp.net sql-server session

在ASP.NET中使用SqlServer会话状态提供程序。

来自:http://msdn.microsoft.com/en-us/library/aa478952.aspx, ASPStateTempSessions表的SessionId列由以下内容组成: “会话ID”+“应用程序ID”。

我的问题是,“会话ID”不足以使此列独一无二吗?如果是这样,添加“应用程序ID”只是一些额外的安全性,以确保不能跨应用程序边界访问会话?

我只是想更好地理解会话ID(24个字符)。

编辑:对不起,我应该澄清一下。假设对于域上的所有应用程序,ASP.NET sessionState cookieName显式设置为每个应用程序的唯一值。

例如:

for app 1 :  <sessionState mode="SQLServer" ... cookieName="ASP.NET_SessionId_App1" > .. 

for app 2 : <sessionState mode="SQLServer" ... cookieName="ASP.NET_SessionId_App2" > ..

(我认为这会让每个应用使用不同的会话ID?)。

2 个答案:

答案 0 :(得分:1)

ASP.NET Sql Server会话状态提供程序数据库架构旨在支持多个Web应用程序,即您可以从多个Web站点备份相同的SQL Server数据库。

答案 1 :(得分:1)

如果您正在查看单个应用程序,是 - 会话ID足以使该列唯一。但是 - 数据库模式旨在支持一个数据库中的多个应用程序。当存在多个记录时,应用程序ID使其唯一。它与安全无关。