在Windows 2008服务器上运行aspnet_setreg.exe

时间:2009-05-06 16:14:21

标签: asp.net iis windows-server-2008

我有一个站点使用aspnet_setreg.exe将身份用户的用户名和密码加密到注册表中。它一直运行良好但是当我在Windows 2008上运行时,我得到了这个:

C:\ aspnet_setreg> aspnet_setreg.exe -k:SOFTWARE \ MYCODE \ identity -u:“domain \ user”-p:“password”

请编辑您的配置以包含以下内容:

的userName = “注册表:HKLM \ SOFTWARE \ mycode的\身份\ ASPNET_SETREG,用户名” 密码= “注册表:HKLM \ SOFTWARE \ mycode的\身份\ ASPNET_SETREG,密码”

注册表项上的DACL授予对系统,管理员和创建者所有者的完全控制权。

如果您具有配置节的加密凭据或配置节的连接字符串,请确保进程标识具有对注册表项的读取权限。此外,如果您已配置IIS以访问

上的内容

UNC共享,用于访问共享的帐户将需要对注册表项的读取权限。 Regedt32.exe可用于查看/修改注册表项权限。

您可以重命名注册表子项和注册表值,以防止发现。

是否有其他人使用此功能,您是否认为它在2008年有效。

由于

4 个答案:

答案 0 :(得分:5)

aspnet_setreg.exe的潜在问题是它是一个32位进程,并且将写入Wow6432Node而不是上面指出的位置。如果您运行的是64位应用程序池,则需要将reg密钥复制到“真正的”x64位置。

答案 1 :(得分:2)

1)aspnet_setreg应用程序将注册表项放入HKLM \ Software \ Wow6432Node \ path of path。

如上所述,这是修改64位注册表项的32位应用程序的行为。

2)要将密钥移动到正确的位置,我将密钥导出到.reg文件,然后编辑该文件并删除文件中的Wow6432Node目录。

3)或者,你可以使用Wow6432Node路径:

例如:

userName="registry:HKLM\Software\Wow6432Node\MYCODE\identity\ASPNET_SETREG,userName"

password="registry:HKLM\Software\Wow6432Node\MYCODE\identity\ASPNET_SETREG,password"

4)另外,请注意您必须具有管理员权限才能运行此功能。在Windows 7上,我使用“以管理员身份运行”从命令行运行它,并将aspnet_setreg存储在其中 HKEY_USERS [USER SID] \ Software \ Classes \ VirtualStore \ MACHINE \ SOFTWARE \ Wow6432Node。

5)最后,请记住设置注册表项的权限,以便您的应用程序可以从注册表项中读取。

参考文献:http://support.microsoft.com/kb/329290

答案 2 :(得分:0)

您对x64位置是正确的。如何让aspnet_setreg.exe在x32注册表位置设置reg值?

答案 3 :(得分:0)

我从2003服务器移动了密钥。但是仍然想知道是否有其他人有经验在2008机器上使用它。