Вопрос по asp.net, configuration – Ошибка шифрования web.config

15

Я знаю, что госзакупки уже задавали вопросы, касающиеся шифрования web.config.

Я также пытаюсь зашифровать мой тестовый конфигурационный файл, но я получаю эту ошибку.

aspnet_regiis -pef & quot; connectionStrings & quot; & Quot; C: \ encryptedWeb.config & Quot; Шифрование раздела конфигурации ... Конфигурация для физического пути "C: \ EncryptedWeb.config" не может быть открыт. Не удалось!

Я просто хочу знать, что может быть причиной того, что это не удалось.

Я получил ответ, это было только для чтения свойство web.config, которая была проблема. После того, как я удалил только для чтения, он работал как шарм.

Ваш Ответ

9   ответов
0
Encrypt/Decrypt web.config source is taken from this link https://mywebanecdotes.com/2016/09/17/encrypting-credentials-in-app-config-for-multiple-machines/ Firstly, if you have App.config, you need to rename to Web.config. And when done rename it back. This is because aspnet_regiis.exe recognize only Web.config file. Then create a custom attribute SecuredSettings(any name is fine) either in you App.config or Web.config file.
<configuration>
<configSections>
   <section name="SecuredSettings" type="System.Configuration.NameValueSectionHandler" />
 </configSections>
 <SecuredSettings>
      <add key="pwrd" value="password" />
 </SecuredSettings>
 <configProtectedData>
   <providers>
     <add keyContainerName="MyCustomKeys"
              useMachineContainer="true"
              name="MyEncryptionProvider"
              type="System.Configuration.RsaProtectedConfigurationProvider"/>
   </providers>
 </configProtectedData>

</configuration>
In C# you can retrieve these values as you would do it normally. eg:
var attr = ConfigurationManager.GetSection("SecuredSettings") as NameValueCollection;
var value = attr["pwrd"];
The rest is ecrypting or decrypting Run cmd As Administrator , and locate to C:\Windows\Microsoft.NET\Framework\v4.0.30319 "Create a public/private RSA key pair with a specfic container name. They should also be marked as exportable (otherwise what is the point!)" aspnet_regiis.exe -pc MyCustomKeys -exp "Grant permissions for accounts to access the container" aspnet_regiis.exe -pa MyCustomKeys "NT AUTHORITY\NETWORK SERVICE" "The following line will now encrypt your section (the pwdr value). The -pef switch is telling the application to look for a web.config file and to use provider that is declared in the beginning (which is using type RsaProtectedConfigurationProvider)" aspnet_regiis.exe -pef "SecuredSettings" "C:\DEV\ConsoleApp\DEX" -prov MyEncryptionProvider Export those Keys to another machine (if needed) aspnet_regiis.exe -px MyCustomKeys keys.xml -pri it will generate keys.xml file in C:\Windows\Microsoft.NET\Framework\v4.0.30319 copy this file and put it in another machine where you would like to use it, to the same location C:\Windows\Microsoft.NET\Framework\v4.0.30319, and run: aspnet_regiis -pi MyCustomKeys keys.xml after you can delete the file from both sides. Don't forget to rename Web.config to App.config, if you did so at the beginning. TO Decrypt the file: aspnet_regiis.exe -pdf "SecuredSettings" "C:\DEV\ConsoleApp\DEX"
3

Не добавлять\ в конце пути (web.config не требуется).

Вам не нужно делать это прямо на сайте; вместо этого скопируйте файл в любое место.

Шифрование:

aspnet_regiis -pef "SECTIONTOENTRYPT" "d:\tempEnCrypt" -prov WhateverProviderYouAreUsing 

Дешифровка:

aspnet_regiis -pdf "SECTIONTOENTRYPT" "d:\tempEncrypt"

Вы также можете использовать это для шифрования app.config, просто переименуйте файл для шифрования / дешифрования в web.config

3

что это старо, но у меня просто была та же самая проблема, и ни один из других ответов не получил проблему.

Вы не должны указывать имя файла в пути, и файл ДОЛЖЕН называтьсяweb.config, Так что для вашего примера, если вашweb.config файл на самом деле вC:\ вы бы положили:

aspnet_regiis -pef "connectionStrings" "C:\"

и ваш файл ДОЛЖЕН называтьсяweb.config так как инструмент будет искать только этот файл.

Для тех людей, чей файл не находится вC:\ Вам нужно будет указать полный путь к файлу (корень сайта). Вам также понадобитсяcd в каталог, содержащийaspnet_regiis.exe или укажите полный путь к файлу для инструмента:

C:\Windows\Microsoft.NET\Framework\v4.0.30319\aspnet_regiis -pef "ConnectionStrings" "C:\Ghron\Projects\Company\trunk\project1\project1"

Кроме того, некоторые другие ответы являются действительными точками - параметры чувствительны к регистру, поэтому ваши пути и названия разделов должны быть в правильном регистре. Я потратил около 20 минут, используя"ConnectionStrings" вместо"connectionStrings" (нижний регистр с).

0

инструмент зашифровать ваш веб-конфиг

0

которая исчезла, когда я удалил двойные кавычки, которые окружали мое имя пути. Не имеет никакого смысла, но вы здесь.

Я также написал сценарий PowerShell для шифрования / дешифрования, не имея дело с aspnet_regiis:https://github.com/mhenry1384/EncryptDecryptConfig

0

http://msdn.microsoft.com/en-us/library/ms998283.aspx

Возможность указать сайт с     -сайт & quot; SiteName & quot;  в противном случае он будет использовать веб-сайт по умолчанию.

Error: User Rate Limit Exceeded
Error: User Rate Limit Exceeded alice7
Error: User Rate Limit Exceeded
Error: User Rate Limit Exceeded alice7
Error: User Rate Limit Exceeded
0

add the aspnet_regiis tool's folder path to your %PATH% variable. This ensures that the tool is accessable from any folder in your command line. See this page for a brief explanation of how to add %PATH% variables: http://geekswithblogs.net/renso/archive/2009/10/21/how-to-set-the-windows-path-in-windows-7.aspx navigate to your web root folder (don't know if this is necessary but that's where I was navigated when I executed the command)

execute the command with the -pe argument and the -app argument like such:

aspnet_regiis -pe {section to encrypt} -app "{path from root folder to app, like: "/myappname", use quotes}

34

еский путь (не виртуальный), а также путь к каталогу / папке, в которой находится файл web.config. Поэтому не следует включать имя файла в путь, например,

если ваш путь к web.config находится вD:\MyConfiguration\web.config тогда при шифровании / дешифровании вы будете использовать его следующим образом:

encrypt:

aspnet_regiis -pef [sectionName] "D:\MyConfiguration"

decrypt:

aspnet_regiis -pdf [sectionName] "D:\MyConfiguration"

Error: User Rate Limit Exceeded
0

-сайта. Provide command to encrypt from a site and not default website. Below command works when application is in defaultwebsite: aspnet_regiis.exe -pe "connectionStrings" -app "/sitename" -prov "DataProtectionConfigurationProvider"

Похожие вопросы