我正在使用一本书来学习 .NET 认证,但我对出版商证书的问题感到困惑。
背景:
Windows Vista Home Basic SP2 Visual Studio 2008 .NET 3.5 SP1
目标:
编写一个简单的 C# 控制台应用程序,该应用程序有权读取由应用程序证书确定的特定文本文件。
症状:
尽管将 Nothing 权限集分配给受应用程序证书限制的代码组,我仍能够从文件中读取。
采取的步骤:
- 编写了使用 StreamReader 读取文件并输出到控制台的 C# 控制台应用程序。该应用程序按预期工作。
- 在应用程序的属性中,我使用了“签名”选项卡,将“签署 ClickOnce 清单”复选框设置为 ON,单击“创建测试证书”按钮,然后输入密码。
- 接下来,我单击“更多详细信息”按钮,导航到“详细信息”选项卡,选择“公钥”行,然后单击“复制到文件”按钮。
- 在证书导出向导中,我选择不导出私钥,选择 DER 编码的二进制 X.509 格式,并提供 .CER 文件的路径。
- 接下来我重建了应用程序。
- 我打开了 .NET Framework 2.0 配置工具。
- 我导航到我的电脑 > 运行时安全 > 机器 > 代码组 > All_Code
- 右键单击 All_Code,然后选择 New 以启动 Create Code Group 向导。
- 为新代码组命名,然后选择发布者条件类型。
- 单击从证书文件导入按钮,然后选择新创建的 .CER 文件。
- 接下来,我选择了 Nothing 权限集。
- 当运行应用程序时,它现在应该是新代码组的成员,它仍然可以正常工作。我希望如果它是 Nothing 权限集的成员,它就无法读取该文件。
感谢您提供的任何见解。我可能遗漏了一个小细节。我想知道这是否与使用 Vista Home Basic 有关。