将用户限制为一台设备(退出其他设备)

时间:2017-07-18 08:50:03

标签: c# asp.net security session webforms

我正在尝试解决如何阻止用户同时使用来自不同设备的webapp。

我想在新用户登录时注销任何旧会话。但是, 我不希望每个请求都查询数据库。

我有几个想法,任何人都可以解释哪个更好,或者是否有更好的解决方案。 (已阅读有关互斥体的信息,但它似乎适用于winforms?)

方法1,

  

>登录时在数据库中存储sessionID。

     

>发生新登录时,请从存储中删除/删除/使以前的SessionID无效。

方法2,

  

>使用包含“user_session”对象列表的静态类,每个对象包含一个LoginID和SessionID。

     

>登录时更新静态类sessionID

     

>在加载每个页面时,检查sessionID!=静态类的sessionID。如果是,请注销用户。

方法3,

  

>应用程序缓存(与上面相同的方法,但用应用程序缓存替换静态类)

方法4,

  

>使用Application_PreRequestHandlerExecute,在登录时,我可以存储UserID + deviceID

     

>将其存储在web.cache中,然后存储在每个请求中,如果cache.UserID.DeviceID!= session会话,请将用户注销。

方法5,

  

>在会话中存储设备ID   >在登录时更改会话Cookie ID以匹配当前会话的ID。   不确定这是否可能或会导致任何意外结果

真的会对什么是更好的解决方案提出一些意见。如果有另一种方法来实现所述功能。干杯!

0 个答案:

没有答案