我有包含所有用户帐户详细信息的用户表,包括带有位数据类型的IsLoggedIn字段。当用户在上一个会话到期之前启动新会话时,我想用IsLoggedIn = 1更新任何旧行。实现这一目标的最佳方法是什么?是否可以使用Trigger执行此操作?
提前致谢..
答案 0 :(得分:1)
您肯定会有两件事情.1)用户ID和2)数据库中的会话ID。
现在当新的会话启动(session_Start)事件触发时...你可以用逻辑调用一个存储过程,逻辑将是
1)如果没有具有相同userID的记录,则不进行任何更新。 2)如果有任何具有相同userID的记录,则使用IsLoggedIn = 1更新所有记录。
您也可以使用TRIGGER扩展此逻辑,并根据需要进行绑定。
基本上,您需要跟踪session_Start事件并执行数据库操作。
答案 1 :(得分:1)
触发器不是建议的解决方案,因为您需要处理来自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+