Asp.net 在windows 2008服务器上运行aspnet_setreg.exe

Asp.net 在windows 2008服务器上运行aspnet_setreg.exe,asp.net,iis,windows-server-2008,Asp.net,Iis,Windows Server 2008,我有一个网站,它使用aspnet_setreg.exe将身份用户的用户名和密码加密到注册表中。它一直运行良好,但当我在Windows 2008上运行它时,我发现: C:\aspnet\u setreg>aspnet\u setreg.exe-k:SOFTWARE\MYCODE\identity-u:“域\用户”-p:“密码” 请编辑配置以包含以下内容: userName=“注册表:HKLM\SOFTWARE\MYCODE\identity\ASPNET\u SETREG,用户名” passwor

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

C:\aspnet\u setreg>aspnet\u setreg.exe-k:SOFTWARE\MYCODE\identity-u:“域\用户”-p:“密码”

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

userName=“注册表:HKLM\SOFTWARE\MYCODE\identity\ASPNET\u SETREG,用户名” password=“注册表:HKLM\SOFTWARE\MYCODE\identity\ASPNET\u SETREG,密码”

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

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

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

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

是否有其他人使用此功能,您是否看到它在2008年起作用


谢谢

aspnet_setreg.exe的潜在问题是它是一个32位进程,将写入WOW6432节点,而不是上面所示的位置。如果您正在运行64位应用程序池,则需要将注册表项复制到“真实”x64位置。

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

我从2003服务器上移动了注册表项。但仍想知道是否有其他人有在2008年计算机上使用此功能的经验。

1)aspnet_setreg应用程序正在将注册表项放入HKLM\Software\Wow6432Node\rest路径

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

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

3) 或者,您可以只使用WOW6432节点路径:

例如:

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

password="registry:HKLM\Software\Wow6432Node\MYCODE\identity\ASPNET_SETREG,password"
4) 另外,请注意,您必须具有管理员权限才能运行此操作。在Windows7上,我使用“以管理员身份运行”从命令行运行它,并将它存储在 HKEY_用户[用户SID]\Software\Classes\VirtualStore\MACHINE\Software\wow6432节点

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


参考资料:

我最终从2003服务器上移动了密钥。但是我仍然想知道是否有其他人有在2008年的机器上使用这个的经验。谢谢…很高兴知道。。。这台机器是32位的,但我必须在一些64位机器上重复这个过程。谢谢你的提醒。