我有包含所有用户帐户详细信息的 users 表,包括具有位数据类型的 IsLoggedIn 字段。当用户在前一个会话到期之前启动新会话时,我想用 IsLoggedIn = 1 更新任何旧行。实现这一目标的最佳方法是什么?可以用触发器做到这一点吗?
提前致谢..
我有包含所有用户帐户详细信息的 users 表,包括具有位数据类型的 IsLoggedIn 字段。当用户在前一个会话到期之前启动新会话时,我想用 IsLoggedIn = 1 更新任何旧行。实现这一目标的最佳方法是什么?可以用触发器做到这一点吗?
提前致谢..
你肯定会有两件事.. 1)用户 ID 和 2)数据库中的会话 ID。
现在,当新会话开始(session_Start)事件被触发时..您可以使用逻辑调用一个存储过程,逻辑将是
1)如果没有具有相同用户ID的记录,则不要进行任何更新。2) 如果有任何具有相同用户 ID 的记录,则使用 IsLoggedIn = 1 更新所有记录。
您也可以使用 TRIGGER 扩展此逻辑,并根据您的需要对其进行绑定。
基本上您需要跟踪 session_Start 事件并执行数据库操作。
触发器不是建议的解决方案,因为您需要从 UI 处理登录。如果只有一次登录,则Application_Start
可以使用。如果可以有多个登录,那么Session_Start
最好。从那里您可以调用数据库并执行相应的操作。
两者的区别在:http ://forums.asp.net/t/1230163.aspx/1?What+s+the+difference+between+Application_Start+and+Session_Start+in+Global+aspx+