我的意思是用户 ID 不能同时在两台不同的计算机上进行身份验证。我怎样才能控制这个?我正在 Apache 平台上使用 SQUID。?
最佳答案
如果用户数据库表(假设它称为 UserTable)仅位于一台计算机上,则在该表中添加一个名为“CurrentMachine”的字段,并为该字段指定默认值“”(空字符串)。
当用户 ID 为“Tom”的用户成功登录到名为“ServerA”的计算机时,发送以下查询:
UPDATE UserTable SET CurrentMachine='ServerA' WHERE UserID='Tom';
每当用户注销或他/她的 session 过期(使用 session 结束事件)时发送此查询
UPDATE UserTable SET CurrentMachine='' WHERE UserID='Tom';
为了测试用户是否未登录到多台计算机,请在尝试登录时使用此查询:
从 UserTable WHERE UserID='Tom' 中选择 CurrentMachine
如果返回的值为“”(空字符串),则让他们登录并运行上面的第一个查询,以便他们在注销或 session 过期之前无法在其他任何地方登录。如果返回的值是另一台机器的名称,则不要让他们登录。
注意:为了清楚起见,我使用了文本 ID。 SQUID 是一样的,只是字符串更长。
关于linux - 我的意思是用户 ID 不能同时在两台不同的机器上进行身份验证。我怎样才能控制这个?我正在将 SQUID 与 Apache 服务器平台一起使用。?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28827640/