0

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

环境

Asp.net 4.0、Vb.net 4.0、Oracle 10g、window server 2003 和 IIS 6.0

设想

当用户登陆第一页时,系统将为该用户分配一个会话ID,该ID将保存在LAST_SESSION_ID列下的用户表中的数据库中。所以每次他访问应用程序(或新会话)时,系统都会覆盖这个 LAST_SESSION_ID 列。我会将会话 ID 保存在会话变量中,并将其传递给每个 DML 事务的 oracle 存储过程,并将此 ID 与 LAST_SESSION_ID 列中的值进行比较,如果它们相同,则表示用户的会话仍然处于活动状态。

问题

  • 我想知道我是否应该在 oracle 数据库中创建唯一的会话 ID(通过序列)或使用由 asp.net session 'HttpContext.Current.Session.SessionID' 生成的一个?要获得唯一的 asp.net 会话 ID,我必须使用以下设置设置 webconfig 文件,我不知道这是否是个好主意,因为我以前没有使用过这种技术。

  • 对上述情况有更好的解决方案吗?例如,我正在设计的系统适用于 200-300 个用户(Timesheet APP),这是一个内部应用程序,因此安全性不是一个大问题。我不能在用户将请求发送到数据库服务器之前检查会话,而不是在存储过程中验证会话吗?
4

1 回答 1

0

如果这是出于安全原因,答案是您需要根据 Web 服务器验证的用户名在每个请求中检查用户的访问权限。

与其担心他们是如何到达第 2 页的,不如问“他们是否可以看到第 2 页”。

于 2012-10-23T13:09:44.823 回答