控制MVC Web App中登录用户数的限制

时间:2017-03-07 08:48:11

标签: c# jquery asp.net-mvc iis signalr

我想设置限制来控制同时登录的用户数。

场景: -

我有一个MVC网络应用程序,// all environments app.set('port', process.env.PORT || 3000); app.set('views', __dirname + '/views'); app.set('view engine', 'jade'); app.use(express.favicon()); app.use(express.logger('dev')); app.use(express.bodyParser()); app.use(express.methodOverride()); app.use(app.router); app.use(express.static(path.join(__dirname, 'public'))); // development only if ('development' === app.get('env')) { app.use(express.errorHandler()); } app.get('/', routes.index); app.get('/users', user.list);将以XYZ金额购买我的应用程序。我将允许3个用户同时登录该App。现在Customer A再次来到我面前说我希望将用户限制的数量增加到10.我会说好的支付这么多我会做的。

现在我想将用户登录用户(同时)限制设置为10.

我的问题是如何在MVC中实现这一概念。

我的所作所为: -

我使用Customer A变量来实现这一点,但有一些情况,比如用户登录但没有注销他/她当时关闭浏览器我如何命令当前登录的用户数。

1 个答案:

答案 0 :(得分:0)

您无法强制退出,也无法确定浏览器何时关闭。

我有两个建议

客户端到服务器: 如果你期望一个相对较低的并发用户数,我会有一个全局的Jquery函数,它会在x秒内轮询服务器。

用户登录,存储他们的"令牌"," IP"和"最后的行动时间"并给他们'#34;令牌" (令牌应该是唯一的)。 每隔x秒,有一个jquery函数用令牌调用服务器并更新"最后一个动作时间"

登录时,测试用户是否有10个当前处于活动状态的登录。如果是,请拒绝。 (在x秒内的最后一次动作)

  • 这里的问题是误报,用户实际上可以注销,但x在X中。

服务器到客户端 使用信号器或其他技术来轮询登录用户以查看他们是否仍然登录。