【问题标题】:Disable User from Viewing ActiveX Control Property Excel (VBA)禁止用户查看 ActiveX 控件属性 Excel (VBA)
【发布时间】:2012-07-04 03:29:08
【问题描述】:

我目前正在 Microsoft Excel 上构建基于 VBA 的应用程序。

我使用简单的 activeX 控件来获取用户 ID/密码。这样做的问题是用户可能能够通过查看 activeX 标签的“属性”来查看密码的值

有什么方法可以阻止用户激活“设计”模式并直接查看文本框的值?或者有没有更好的方法将凭据存储在系统上?我使用文本框的原因是因为它们更易于用户使用(您可以保存该值,因此您可以在将来使用该程序而无需再次重新输入用户名/密码)并且易于维护(不需要表单/弹出窗口)

感谢您的帮助。

这就是工作表上的 id/密码框的样子(使用 activeX 控件)

问题是用户打开设计模式->属性可以看到密码文本框的值

【问题讨论】:

  • 我有点困惑,如果用户可以保存密码,那么任何拥有该文件的人都可以在没有密码的情况下访问系统。不管他们是否可以激活设计模式
  • 感谢您的回复。是的,这没关系,因为即使使用访问权限(登录 ID/密码),用户也只能“查看”要提取的某些数据(因为 vba 代码受密码保护)。人们获取 ID/PW 的问题在于,他们可以使用它通过其他程序(例如 SQL Server Management Studio)连接到 SQL Server 并执行其他操作(例如 Truncate/Drop 表)以及查看其他表当前的 excel 应用程序无法访问。抱歉,我可能可以用图片更好地解释,但我不能这样做,因为我还没有足够的声誉..

标签: excel activex vba


【解决方案1】:

我会创建一个用户表单来处理用户名/密码系统。通过在 VBA IDE 中将工作表的“Visible”属性设置为“xlSheetVeryHidden”,表单可以将用户名和密码保存到非常隐藏的工作表中。除非您进入 VBA IDE 并更改可见属性,否则无法取消隐藏工作表。

打开表单时,从该工作表上的两个区域加载数据。您可以将范围名称设置为对名称管理器隐藏,以防您担心用户会计算出范围名称并将值放入单元格中。

只有能够访问 VBA 代码的人才能知道单元格区域名称是什么以及在何处访问它们。所以用密码保护它,它会像你在 Excel 中一样安全,至少在我看来是这样。

在任何情况下,安全性都是相对的。某物需要有多安全取决于数据的重要性。如果只是为了防止人们弄乱他们不应该做的事情,那么简单的安全性就可以了。如果它是高度机密的数据,那么您无论如何都不应该允许用户保存密码。可能是用户名,但不是密码。

【讨论】:

  • 感谢您的回复。您的解决方案似乎可行。我会考虑这样做;)但无论如何,我只是想知道我们是否可以在 excel 上锁定视图属性功能..
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2015-02-09
  • 1970-01-01
  • 1970-01-01
  • 2011-07-28
  • 1970-01-01
  • 2015-04-13
相关资源
最近更新 更多