(IIS / Win2000Pro)向IIS用户授予注册表读取权限?
好的,所以我正在专用网络上运行一个小型测试Web服务器。我有一台运行Windows 2000 Pro的计算机,并且正在尝试通过IIS运行ASP.NET应用程序。
我写它的目的是为了使网页可以使用注册表来存储某些设置(连接字符串,其他Web服务的潜在易失位置,存储某些信息的本地文件系统中的路径等)。当然,在测试时它可以正常工作使用VStudio.NET 2005,因为运行该应用程序的用户具有提升的特权。但是,在IIS上运行它会得到"拒绝访问注册表项'HKEY_LOCAL_MACHINE \ Software'的信息。",这表明IIS用户没有对该注册表部分的读取权限(我只通过网站进行读取本身,永远不会写)。
我就像"好吧,很简单,我将通过regedit授予用户对该注册表部分的权限"。问题是,我在regedit的任何地方都看不到任何更改安全设置的选项...。这让我开始思考...我认为以前从未真正更改过注册表配置单元/注册表项的安全设置,而且我认为我不知道该怎么做。
经过半个小时的网上搜索,我没有找到关于此主题的任何可用信息。我想知道的是...我们如何更改注册表部分的安全权?我很沮丧,看来我无法在Google上找到答案的能力使我彻底失望了……而且由于我刚刚在这里注册,所以我想知道这里是否有人知道。 =)
解决方案
回答
我们可以在要授予用户权限读/写访问权限的文件夹级别上设置权限。
对于情况,右键单击"软件"文件夹,然后选择"权限"。
我们可能会从那里知道其余的信息。
编辑:如果仍然遇到问题,则可能需要修改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年专门实现吗?
编辑:Ahhhh ...如果情况变得更糟,我想我可以像下面提到的那样进行模仿...尽管如果我不能在2000年为注册表设置安全设置,我将让该用户具有管理权限访问权(我认为是?)以实际获得这些权利,这可悲地破坏了目标。 =(
回答
如果我们在Windows 2000中无法使用RegEdit,则可以尝试以下操作:
- 将Windows XP RegEdt32.exe复制到Windows 2000计算机
- 使用Windows XP计算机,远程连接到Windows 2000注册表:"文件">"连接网络注册表"
回答
哦,让我试试看!我没有意识到我们可以远程连接到另一个注册表。
(编辑:我错了,它确实起作用了……只花了几分钟就响应了我的远程更改权限请求)
远程连接的想法做到了!你很厉害!非常感谢你的帮助!他们说,我从未意识到我们可以与RegEdit进行远程连接...我们每天都在学习新知识! =)再次感谢协助! =)
但是,另一方面,关于将RegEdit的XP版本复制到Windows 2000的安全性是吗?我认为它们将以不兼容的方式进行编码...但是我可能会承担过多的责任。 =)
回答
只需使用RegEdt32.exe而不是Regedit.exe。
转到所需的密钥或者文件夹,然后打开安全菜单,然后单击"权限"。