【发布时间】:2019-05-06 14:22:35
【问题描述】:
如何在 asp.net core(aspnetboilerplate) 项目上创建软件锁? 我想知道我的项目在 Internet 上有多少活动版本? 我可以禁用其中的一些。
【问题讨论】:
-
没人知道吗?
标签: aspnetboilerplate asp.net-core-2.2
如何在 asp.net core(aspnetboilerplate) 项目上创建软件锁? 我想知道我的项目在 Internet 上有多少活动版本? 我可以禁用其中的一些。
【问题讨论】:
标签: aspnetboilerplate asp.net-core-2.2
提供实际代码示例不是一项简单的任务,但在高层次上,您可以通过跟踪 DB 中的 IP 会话来实现这一点。如果您只想完全只允许一定数量的活动会话,那么您只需检查 IP 会话数据库以查看您是否已达到配额,然后根据该检查允许或拒绝下一个会话.要将其扩展到允许超级管理员终止会话,您只需检查用户在数据库中是否有记录,这意味着存在有效会话,然后您将删除该记录以“终止”会话。
如果您希望每个用户只允许 1 个会话,则在登录时,保存用户当前 IP 地址及其 UserId 的记录。为此覆盖或创建新记录,然后在定期的用户会话 isAuthenticated 检查中,您将验证用户当前的 Ip 是否与表中的记录匹配。如果匹配,它将是登录的用户,如果不匹配,则另一个 IP 地址正在使用该登录,您将终止他们的会话。
【讨论】: