asp.net - 限制访问 Web ASP .NET 应用程序的用户数

标签 asp.net login licensing

如何限制 Web 应用程序的用户数量。

您可能希望将 Web 应用程序限制为一次只能处理 20 个用户。我们公司销售基于多个许可证的应用程序,但我们不确定 Web 应用程序中的行为。

我看到一些建议说,当用户登录时,您可以将用户帐户标记为“LoggedIn = True”。然后每次新的成功登录尝试都会检查“LoggedIn = True”记录的数量。如果超过限制,则拒绝用户。

在这种情况下如何处理意外输入?如果:

  • 用户不点击退出,关闭浏览器
  • 浏览器崩溃,用户没有机会退出
  • 网络连接中断、客户端断电等

  • 以上所有内容仍将设置“LoggedIn = True”标志并影响登录用户的数量。这可能会无意中阻止真正的经过身份验证的用户。

    如果可能,我正在寻找更多的 ASP.NET 解决方案。

    最佳答案

    假设您的用户身份验证以某种方式基于 session ,那么您所有“意外”情况(这实际上是常态 - 人们似乎很少退出 Web 应用程序)的答案将是这些用户插槽在 session 超时时变为空闲.因此,您需要调查应用程序的使用模式。如果您让很多人登录几分钟,但仅此而已,那么 30 分钟的 session 超时将意味着很少有人真正使用该应用程序。

    根本问题是 Web 应用程序本质上是断开连接的,因此您无法监控用户在请求页面之间实际执行的操作。通常,您会为特定用户出售此类应用程序的许可证(因此,如果一家公司购买了 20 个许可证,那么他们将获得 20 个用户名和密码)。然后,您当然可以通过拒绝第二次登录或停用前一次登录来防止使用相同的用户名和密码进行多次登录(这可能是更好的方法,以防有人真正从一台机器移动到另一台机器而没有注销您概述的原因)。

    关于asp.net - 限制访问 Web ASP .NET 应用程序的用户数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/728812/

    相关文章:

    asp.net - Sencha Touch 错误您正在尝试解码 ASP.NET 中返回的无效 JSON 字符串 HTML 页面

    IE7,8 的 ASP.NET TreeView 性能问题

    php - 需要帮助创建自定义用户注册/登录脚本

    Django 注册/登录不引导用户到 ?next=/my/url

    java - jetty worker 。使用基于主机 ID 的许可证运行软件

    c# - 动态添加的 ASP.Net 按钮无法调用 Click 或 CommandArgument 事件

    c# - 如何让框架和依赖的应用松耦合?

    docker - 在travis CI中连接到Docker Hub

    licensing - GPL 和 BSD 内核中的专有模块

    licensing - 注册 SQL Server Express 重新分发