【问题标题】:In Angular, how to prevent a user from changing from the current tab?在 Angular 中,如何防止用户从当前选项卡更改?
【发布时间】:2020-08-11 19:48:20
【问题描述】:

我有一个考试应用程序,我们希望防止用户在考试期间更改标签或打开新标签,以作为安全措施。您能提出实现相同目标的方法吗?

【问题讨论】:

    标签: angular security visibilitychange


    【解决方案1】:

    我认为这是不可能的,学生们可能已经安装了其他网络浏览器,或者使用智能手机、平板电脑、另一台计算机......来浏览网络。

    【讨论】:

    • 你是对的。但是,我们希望通过禁用选项更改选项卡/在同一浏览器中打开一个新选项卡,让他们尽可能地具有挑战性。
    • @Adharsh 我会说,您可以添加的一点点阻力不值得您为开发该功能而投入时间和精力。无论你在路上设置什么障碍都很容易克服,以至于不值得。重点应该更多地放在设计无法通过互联网搜索轻松解决的问题上。
    【解决方案2】:

    我认为避免打开新标签或窗口是不可能的。但是,您可以检查您的应用是否具有用户的焦点。

    这里有关于这个话题和浏览器兼容性的详细解答Is there a way to detect if a browser window is not currently active?

    【讨论】:

      【解决方案3】:

      您可以通过创建托管浏览器的桌面应用程序来实现此目的。并不像看起来那么复杂,但它需要不同的技术堆栈。此外,它显然需要安装在客户端上,这在您的用例中可能不可行。众多选择之一是:

      • 创建 WPF 应用程序
      • 强制它保持在顶部,即WPF always on top
      • 将 Chromium 添加为 Web 浏览器:Chromium
      • 实现一些自定义行为,例如在启动时打开测试页面等。

      假设技术堆栈是已知的,我估计它可以在几个小时内完成,包括测试。该解决方案还为您提供了一些额外的控制,即您可以禁用浏览器缓存...

      【讨论】:

        猜你喜欢
        • 2019-07-29
        • 2019-10-29
        • 1970-01-01
        • 2015-04-05
        • 2020-01-21
        • 1970-01-01
        • 1970-01-01
        • 2018-01-30
        • 1970-01-01
        相关资源
        最近更新 更多