数据库中的用户表中的会话ID-我应该使用ASP.NET会话ID或通过序列创建一个



我在ASP.NET 4.0中设计一个内部应用程序,必须使用窗口身份验证。数据库和应用程序都在不同的服务器上。

环境

ASP.NET 4.0,VB.NET 4.0,Oracle 10G,Window Server 2003和IIS 6.0

方案

当用户降落在第一页上时,系统将为此用户分配一个会话ID,并且该ID将保存在lastrongession_id列下的用户表中的数据库中。因此,每次他访问应用程序(或在新会话中)系统时,系统都会覆盖此lastrongession_id列。我将将会话ID保留在会话变量中,并将其传递到每个DML事务上的Oracle Store过程,并将此ID与Last_Session_ID列中的值进行比较,如果它们相同,则意味着用户的会话仍然处于活动状态。

问题

  • 我想知道我是否应该在Oracle数据库(通过序列)中创建唯一的会话ID,还是使用ASP.NET会话" httpcontext.current.session.sessionid"生成的一个?要获取唯一的ASP.NET会话ID,我必须设置具有以下设置的WebConfig文件,我不知道这是否是一个好主意,因为我以前从未使用过此技术。

  • 是否有更好的解决方案?例如,我正在设计的系统适用于200-300个用户(时间表应用程序),这是一个内部应用程序,因此安全性并不是一个大问题。与其在商店过程中验证会话,我不能在用户将请求发送到数据库服务器之前检查会话吗?

如果是出于安全原因,答案是您需要根据Web服务器认证的用户名来检查用户访问的用户。

而不是担心他们如何到达第2页,只问"允许他们查看第2页。