在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?)。
答案 0 :(得分:1)
ASP.NET Sql Server会话状态提供程序数据库架构旨在支持多个Web应用程序,即您可以从多个Web站点备份相同的SQL Server数据库。
答案 1 :(得分:1)
如果您正在查看单个应用程序,是 - 会话ID足以使该列唯一。但是 - 数据库模式旨在支持一个数据库中的多个应用程序。当存在多个记录时,应用程序ID使其唯一。它与安全无关。