0

我正在使用企业库和 AZ Man 将用户身份验证到我的 winforms 应用程序中。我已经使用 XML 文件使代码工作正常。我不明白如何安全地部署应用程序。

在 app.config 中有一个 XML 文件的路径。似乎没有任何东西可以阻止用户在 azman.msc 中打开此 XML 文件并授予自己不应有的访问权限。

如果我们将 XML 文件放在服务器上并使其对用户只读,则没有什么可以阻止用户在本地复制所有内容并将 app.config 指针更改为他们可以写入的本地文件。

我似乎在这里缺少一些重要的东西,但我一直在阅读并且无法弄清楚。

4

1 回答 1

1

我认为您可能想要做的是在 Active Directory 而不是 xml 文件中创建您的授权存储。您可以在此处找到有关如何执行此操作的说明。这是有趣的一点:

使用授权存储

创建授权存储

  1. 打开授权管理器,右键单击授权管理器,单击选项,选择开发人员模式,然后单击确定。
  2. 在授权管理器控制台中,右键单击授权管理器,单击新建,然后单击授权存储。
  3. 选择 Active Directory 或 XML 文件作为存储类型。
  4. 在“商店名称”框中键入完整的商店名称,或使用“位置”按钮通过“新建授权商店”对话框选择位置。
  5. 如果它是 Active Directory 授权存储,请使用 LDAP 名称——例如 CN=myStore,CN=Program Data,OU=Authorization,DN=myCompany,DN=com。如果它是 XML 授权存储,请使用在运行时有效的路径和文件名——例如 C:\AuthStores\MyStore.xml。
  6. 在“说明”框中键入新授权存储的说明,然后单击“确定”。

注意:授权商店只能在开发者模式下创建。有关设置开发人员模式的说明,请参阅本文的“设置授权管理器选项”部分。

在 Active Directory 中创建存储后,您可以限制对 AD 和 AzMan 存储具有写入权限的人员。如果您愿意,也可以在 SQL 中创建存储。

另一个选项是在 app.config 中加密与 AzMan 的连接字符串。由于您使用的是企业库,我认为您可以选择加密整个 AzMan xml 文件。这些都不是完全防弹的,但是您的用户将不得不经历很多麻烦来破解您的应用程序。但是,如果您的用户愿意付出那么多努力来闯入您的程序,那么您就没有编程问题——您有一个需要解决的人事问题(无论如何,我认为)。

看起来像是加密 app.config 部分的一个很好的演练。本质上,我认为这个想法是您在工作站上创建一个新的 RSA 密钥并使用该密钥来加密 app.config 部分。然后将该密钥导入服务器并授予您的用户对该密钥的读取权限。如果您使用 Google 搜索(或在 stackoverflow 上搜索),我相信还有很多其他的加密解决方案。

于 2013-04-23T15:13:21.123 回答