Asp.net 使用ASPNET\u REGIIS加密Web配置

Asp.net 使用ASPNET\u REGIIS加密Web配置,asp.net,web-config,Asp.net,Web Config,我需要加密web配置的某些部分。在阅读了一些教程之后,我了解到使用工具ASPNET_regis是一种可行的方法。 这就是我目前正在尝试的: 从命令提示符 ASPNET_REGIIS -pef "identity" "D:\IIS\admin.mySite.com" “找不到配置节‘system.web\identity’。” “找不到配置节‘system.web\identity’。” “无法使用提供程序的“RsaProtectedConfigurationProvider”错误消息加密“

我需要加密web配置的某些部分。在阅读了一些教程之后,我了解到使用工具ASPNET_regis是一种可行的方法。 这就是我目前正在尝试的: 从命令提示符

ASPNET_REGIIS -pef "identity" "D:\IIS\admin.mySite.com"
“找不到配置节‘system.web\identity’。”


“找不到配置节‘system.web\identity’。”


“无法使用提供程序的“RsaProtectedConfigurationProvider”错误消息加密“system.web/identity”节:对象已存在。”


为了看看我是否做对了什么,我尝试了以下方法:

ASPNET_REGIIS -pef "connectionStrings" "D:\IIS\admin.mySite.com"
ASPNET_REGIIS -pef "connectionStrings" "D:\IIS\admin.mySite.com"
“无法使用来自提供程序的提供程序“RsaProtectedConfigurationProvider”错误消息加密“ConnectionString”节:对象已存在。”


“无法使用来自提供程序的提供程序“RsaProtectedConfigurationProvider”错误消息加密“ConnectionString”节:对象已存在。”


“找不到配置节'DoesNotExist'。”


救命啊

试试这个:

ASPNET_REGIIS -pef "system.web/identity" "D:\IIS\admin.mySite.com"
如果您试图加密的部分不在
配置
元素的正下方,则需要提供该部分的完整路径。

当aspnet\u regis作为无法读取RSA密钥容器的用户运行时,会出现“未找到对象”错误消息

密钥保存在“C:\Documents and Settings\All Users\Application Data\Microsoft\Crypto\RSA\MachineKeys”中。默认密钥容器名为“NetFrameworkConfigurationKey”。确保您对此密钥容器具有读取权限


请注意,您需要授予应用程序运行时使用的身份的读取权限。最简单的方法是通过aspnet\u regiis工具:aspnet\u regiis-pa“NetFrameworkConfigurationKey”“Yourdomain\username”。

我遇到了类似的问题,当我尝试使用提升的权限从命令提示符下运行它时(“以管理员身份运行”)解决了问题。

我很高兴看到这篇文章,我想确认如何加密连接字符串,以及如何使用
ASPNET\u REGIIS
工具对其进行解密:

对于加密:

aspnet_regiis.exe -pef "connectionStrings" "D:\ProjectAcc"
aspnet_regiis.exe -pdf "connectionStrings" "D:\ProjectAcc"
对于解密:

aspnet_regiis.exe -pef "connectionStrings" "D:\ProjectAcc"
aspnet_regiis.exe -pdf "connectionStrings" "D:\ProjectAcc"
注:

  • 在执行此操作时,我发现了一些问题,我想通知它:
1) 加密操作最初是归档的,因为我没有按照以下命令运行,将ASP.NET运行时安装到IIS:

C:\Windows\Microsoft.NET\Framework\v4.0.30319\aspnet\u regiis.exe-i

ASPNET_REGIIS -pef "identity" "D:\IIS\admin.mySite.com"
2) 当我在处理第一个问题时,我遇到了另一个愚蠢的问题:),即每次安装它时,我都会遇到以下错误:

发生错误:0x8007b799 您必须拥有此机器的管理权限才能运行此工具。

ASPNET_REGIIS -pef "identity" "D:\IIS\admin.mySite.com"
解决方案:关闭UAC可解决此问题。 从开始菜单>控制面板>系统和安全>行动中心>选择您的UAC级别-将此设置为从不通知(需要重新启动)


谢谢你,我希望我能帮上忙。

1-以管理员身份运行cmd 2-转到aspnet_regiis.exe命令行文件夹

3-要加密: aspnet_regiis.exe-pef“ConnectionString”C:..\YourApplication“-prov”DataProtectionConfigurationProvider

4-要解密:
aspnet\u regiis.exe-pdf“ConnectionString”C:..\YourApplication“

I test
aspnet\u regiis.exe-pef“ConnectionString”C:..\YourApplication“
,如果不是以管理员身份运行,它将有错误”对象已存在“。如果以管理员身份运行,它会正常工作。

正如您所说,是这样的:但我仍然收到消息,无法找到该部分。”。我从右键单击文件以确保路径正确@劳塔罗-我可能在反斜杠上犯了同样的错误-试着用一个
/
来代替。我试过了,还做了一些其他的实验。因此,似乎正斜杠是一条出路。我还发现了web配置文件。所以我不明白我做错了什么。感谢您在这方面的帮助。这可能是一个网站,而不是一个应用程序吗?当然可以,但它可以是一个Web应用程序,也可以是一个网站,它们之间存在一些差异。我相信密钥存储在这里:
C:\Documents and Settings\All Users\Application Data\Microsoft\Crypto\RSA\MachineKeys
,您看到了吗?如果是这样,请尝试将其删除并使用
连接字符串运行加密,以测试其是否有效。对于Windows 7及以后版本,它们似乎存储在此处
C:\ProgramData\Microsoft\Crypto\RSA\MachineKeys
在管理员模式下启动命令提示符,然后按上述说明继续。