【问题标题】:running aspnet_setreg.exe on a windows 2008 server在 Windows 2008 服务器上运行 aspnet_setreg.exe
【发布时间】:2009-05-06 16:14:20
【问题描述】:

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

C:\aspnet_setreg>aspnet_setreg.exe -k:SOFTWARE\MYCODE\identity -u:"域\用户" -p:"密码"

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

userName="registry:HKLM\SOFTWARE\MYCODE\identity\ASPNET_SETREG,userName" 密码="注册表:HKLM\SOFTWARE\MYCODE\identity\ASPNET_SETREG,密码"

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

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

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

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

有没有其他人使用过这个,你有没有看到它在 2008 年工作。

谢谢

【问题讨论】:

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

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


【解决方案1】:

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

【讨论】:

  • 很高兴知道...这台机器是 32 位的,但我必须在一些 64 位机器上重复这个过程。感谢您的提醒。
【解决方案2】:

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

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

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

【讨论】:

    【解决方案3】:

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

    【讨论】:

      【解决方案4】:

      我从 2003 年的服务器上移动了密钥。但仍然想知道是否有其他人在 2008 年的机器上使用过这个。

      【讨论】:

        猜你喜欢
        • 2013-07-30
        • 2013-05-08
        • 1970-01-01
        • 2012-09-23
        • 2012-12-12
        • 2019-08-01
        • 1970-01-01
        • 1970-01-01
        • 2019-10-07
        相关资源
        最近更新 更多