【问题标题】:.NET Publisher Certificates.NET 发布者证书
【发布时间】:2010-11-24 16:47:33
【问题描述】:

我正在使用一本书来学习 .NET 认证,但我对出版商证书的问题感到困惑。

背景:

Windows Vista Home Basic SP2 视觉工作室 2008 .NET 3.5 SP1

目标:

编写一个简单的 C# 控制台应用程序,该应用程序有权读取由应用程序证书确定的特定文本文件。

症状:

尽管将 Nothing 权限集分配给受应用程序证书限制的代码组,我仍然能够从文件中读取。

采取的步骤:

  1. 编写了使用 StreamReader 读取文件并输出到控制台的 C# 控制台应用程序。该应用程序按预期运行。
  2. 在应用程序的属性中,我使用了“签名”选项卡,将“为 ClickOnce 清单签名”复选框设置为 ON,单击“创建测试证书”按钮,然后输入密码。
  3. 接下来,我单击“更多详细信息”按钮,导航到“详细信息”选项卡,选择“公钥”行,然后单击“复制到文件”按钮。
  4. 在证书导出向导中,我选择不导出私钥,选择DER编码的二进制X.509格式,并提供了.CER文件的路径。
  5. 接下来我重建了应用程序。
  6. 我打开了 .NET Framework 2.0 配置工具。
  7. 我导航到我的电脑 > 运行时安全 > 机器 > 代码组 > All_Code
  8. 右键单击 All_Code,然后选择新建以开始创建代码组向导。
  9. 为新代码组命名,然后选择发布者条件类型。
  10. 单击“从证书文件导入”按钮,然后选择新创建的 .CER 文件。
  11. 接下来我选择了 Nothing 权限集。
  12. 运行应用程序时,它现在应该是新代码组的成员,它仍然可以正常工作。我希望如果它是 Nothing 权限集的成员,它就无法读取该文件。

感谢您提供的任何见解。我可能遗漏了一个小细节。我想知道这是否与使用 Vista Home Basic 有关。

【问题讨论】:

    标签: c# .net certificate permissionset


    【解决方案1】:

    您的应用程序可以在没有任何证书的情况下读取相关文件吗?

    向一组现有权限添加任何内容不会有太大变化。

    【讨论】:

    • Henk,在第 1 步中,我在没有证书的情况下编写和运行程序。直到后来我才添加。我的印象是,如果发现可执行文件是新组的成员,Nothing 会阻止它执行,因此我测试了 .NET 是否将其作为成员包含在内。我是否基于什么都没有理解?是否有更好的现有权限集可用于测试 .NET 是否将可执行文件包含为新组的成员。在将其指向我自己制作的新权限集之前,我想确保包含正在工作。谢谢!
    • 您确实了解 Nothing,但“匹配证据”过程是附加的,您正在将您的 Nothing 组添加到正常权限。要进行调查,您应该创建一个应用程序无法在没有证书的情况下写入的文件夹,然后向组添加权限。
    • 我终于找到了一个解释我需要知道的页面。我的问题是证书的创建。如原始问题所示,我尝试的一切都在 Visual Studio 中应用程序属性页面的签名选项卡上。似乎在这里创建测试证书不足以让该证书作为发布者条件工作。简而言之,这些步骤是 MakeCert、Cert2spc、SignTool 和 CertMgr。之后我继续第 6 步。c-sharpcorner.com/UploadFile/ankithakur/…
    • 我最后发现的另一件事是 .NET Framework 2.0 配置工具中的 Evaluate Assembly 工具。这证明在我采取网站上概述的步骤之前,我的应用程序在我创建的代码组中没有找到。

      我现在的问题是:从功能上讲,网站上的哪些步骤从原始步骤中省略。我试图了解 Visual Studio 方法与命令行方法之间的区别。显然 UI 是不同的 - 只是试图了解功能差异。
    • 克林特,你可能应该看看你能走多远,也许会问一个新问题。
    猜你喜欢
    • 2021-04-13
    • 1970-01-01
    • 2019-02-03
    • 2023-03-30
    • 1970-01-01
    • 2012-03-24
    • 1970-01-01
    • 2014-09-11
    • 2014-10-15
    相关资源
    最近更新 更多