好的,我正在我的专用网络上运行一个小型测试网络服务器。我有一台运行 Windows 2000 Pro 的计算机,并且我正在尝试通过 IIS 运行 ASP.NET 应用程序。

我编写它是为了让网页使用注册表来存储某些设置(连接字符串、其他 Web 服务的潜在易失性位置、本地文件系统中存储某些信息的路径等...)当然,在测试时它工作得很好使用 VStudio.NET 2005,因为运行该应用程序的用户具有提升的权限。但是,在 IIS 上运行它时,我收到“访问注册表项 'HKEY_LOCAL_MACHINE\Software' 被拒绝。”,这表明 IIS 用户没有对注册表的该部分的读取权限(我只通过网站进行读取)本身,从不写)。

我就像“好吧,很简单,我将通过regedit赋予注册表的那部分用户权利。”问题是,我看不到recedit的任何地方都可以更改安全设置...根本不。这让我想到...我认为我以前从未真正需要更改注册表配置单元/密钥的安全设置,而且我认为我不知道该怎么做。

在网上搜索了半个小时后,我没有找到任何关于这个主题的有用信息。我想知道的是...如何更改注册表部分的安全权?我被难住了,看来我在谷歌上找到答案的能力完全失败了......因为我刚刚在这里注册,所以我想看看这里是否有人知道。=)

有帮助吗?

解决方案

如果您在 Windows 2000 中使用 RegEdit 时遇到问题,您可以尝试以下操作:

  • 将 Windows XP RegEdt32.exe 复制到 Windows 2000 计算机
  • 使用 Windows XP 计算机,远程连接到 Windows 2000 注册表:文件 > 连接网络注册表

其他提示

您可以在要授予用户读/写访问权限的文件夹级别设置权限。

在您的情况下,右键单击“软件”文件夹并选择“权限”。

您可能会从那里知道其余的内容。

编辑:如果仍然遇到问题,您可能需要修改 web.config 文件并使用模拟来让您的 Web 应用程序作为特定用户帐户运行。然后你就可以加强控制。

RegEdt32.exe 将允许您设置注册表项的权限。

只需右键单击某个键(文件夹)并单击“权限”,然后您就可以像编辑文件系统文件夹一样编辑权限。

我这样做是假设安全设置可用。当我右键单击该密钥时,我没有看到任何“安全”选项。=(我三次检查只是为了确保......我刚刚在我的 XP 机器上尝试过,它确实有“权限”部分......但 Windows 2000 机器则不然。(这怎么奇怪?)

在我的搜索中,我发现:

http://www.experts-exchange.com/Programming/Languages/.NET/ASP.NET/Q_21563044.html

其中指出 Windows 2000 的 RegEdit 没有安全/权限设置...但它没有提出解决问题的办法。(问这个问题的人使用的是Windows XP,所以他没问题......但就我而言,是 2000)

有没有办法让它在2000年实现?

编辑:啊啊……如果情况变得更糟,我想我可以进行如下所述的模仿......不过,如果我无法在 2000 年为注册表设置安全设置,我只能让该用户拥有管理访问权限(我假设?)才能真正获得这些权利,但遗憾的是,这违背了目的。=(

哦,让我试试吧!我没有意识到您可以远程连接到另一个注册表。

(编辑:我错了,它确实有效...只需几分钟即可响应我远程更改权限的请求)

远程连接的想法做到了!你很厉害!非常感谢你的帮助!我从来没有意识到你可以使用 RegEdit 进行远程连接...他们说,你每天都会学到新东西!=) 再次感谢您的帮助!=)

另一方面,关于将 XP 版本的 RegEdit 复制到 Windows 2000...这样安全吗?我认为它们会以不兼容的方式编码......但我可能假设太多了。=)

只需使用 RegEdt32.exe 而不是 Regedit.exe。转到所需的密钥或文件夹,然后打开安全菜单并单击“权限”。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top