如何在asp.net core(aspnetboilerplate)项目上创建软件锁? 我想知道我的项目在互联网上有多少个活动版本? 我可以禁用其中一些。
答案 0 :(得分:0)
这不是一个提供实际代码示例的简单任务,但是从更高层次上讲,您可以通过跟踪DB中的IP会话来实现。如果您只希望完全允许一定数量的活动会话,则只需检查IP会话数据库以查看是否已达到配额,然后根据该检查允许或拒绝下一个会话。要将其扩展为允许超级管理员终止会话,您可以仅检查用户在数据库中是否有一条记录,这意味着存在有效的会话,然后删除该记录以“终止”该会话。
如果您希望每个用户只允许1个会话,那么在登录时,请为用户保存当前IP地址及其UserId的记录。为此要覆盖或创建新记录,然后在定期的用户会话isAuthenticated检查中,您将验证用户当前的IP是否与表中的记录匹配。如果匹配,则是登录的用户;如果不匹配,则另一个IP地址正在使用该登录名,您将终止他们的会话。