none
Шифрование Web.config RRS feed

  • Вопрос

  • Добрый вечер! Не получается шифровать Web.config, ответ на aspnet_regiis -pe "system.web/connectionStrings" -app "/mysite" пишет что не удается открыть конфигурацию для виртуального пути "/mysite" и веб узла "веб узел по умолчанию"
    • Перемещено Abolmasov Dmitry 10 января 2012 г. 9:40 (От:Веб)
    24 декабря 2011 г. 16:22

Ответы

  • > То есть для хостинга веб конфиг может защифровать только администратор сервера?


    зашифровать можно прямо из приложения.

    using System;
    using System.Web.Configuration;
    
    namespace WebApplication1
    {
        public class Global : System.Web.HttpApplication
        {
            void Application_Start(object sender, EventArgs e)
            {
                var c = WebConfigurationManager.OpenWebConfiguration("~/");
                var s = c.GetSection("connectionStrings");
                if(s.SectionInformation.IsProtected == false)
                {   
                    s.SectionInformation.ProtectSection("RsaProtectedConfigurationProvider");
                    c.Save();
                } 
            }
        }
    }
    
      
     
    • Помечено в качестве ответа Program-s.g 2 февраля 2012 г. 19:03
    2 февраля 2012 г. 14:21
  • Сегодня получилось зашифровать файл, скопировал строку connectionStrings, вставил вместо старого connectionStrings на хостинге , но сайт не работает, что делаю неправильно?

    Если Вы шифровали файл у себя локально и подложили на хостинг, то неудивительно что не работает - при шифровании используется закрытый ключ, хранящийся на машине, на коей производится шифрование.

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

    По сабжу:

    Зашифровка файла конфигурации web.config сайта IIS, как правило, нужна для скрытия строк подключения в базе данных, или настроек приложения

    Зашифровка выполняется достаточно просто из командной строки:

    C:\Windows\Microsoft.NET\Framework\v2.0.50727>aspnet_regiis.exe -pe "connectionStrings" -app "/siteName"

    Расшифровка:
    C:\Windows\Microsoft.NET\Framework\v2.0.50727>aspnet_regiis.exe -pd "connectionStrings" -app "/siteName"
    Если в Default Web Site найден указанный siteName, то указанный для скрытия/расшифровки раздел обрабатывается почти моментально
    Также рекомендую запускать команду от имени администратора (мало ли - бывает всякое)
    Ну и почитать что нить вроде http://msdn.microsoft.com/ru-ru/library/ie/k6h9cz8h.aspx

     



    • Изменено iSanSYS 1 февраля 2012 г. 22:59 читабилити (
    • Предложено в качестве ответа iSanSYS 1 февраля 2012 г. 22:59
    • Помечено в качестве ответа Abolmasov Dmitry 3 февраля 2012 г. 6:19
    1 февраля 2012 г. 22:58

Все ответы

  • Сегодня получилось зашифровать файл, скопировал строку connectionStrings, вставил вместо старого connectionStrings на хостинге , но сайт не работает, что делаю неправильно?
    25 декабря 2011 г. 10:59
  • Уважаемый пользователь!

    В вашей теме отсутствует активность в течение последних 5 дней. При отсутствии каких-либо действий в течение 2 последующих дней, тема будет переведена в разряд обсуждений. Вы можете возобновить дискуссию, просто оставив сообщение в данной теме


    Для связи [mail]
    10 января 2012 г. 9:39
  • Сегодня получилось зашифровать файл, скопировал строку connectionStrings, вставил вместо старого connectionStrings на хостинге , но сайт не работает, что делаю неправильно?

    Если Вы шифровали файл у себя локально и подложили на хостинг, то неудивительно что не работает - при шифровании используется закрытый ключ, хранящийся на машине, на коей производится шифрование.

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

    По сабжу:

    Зашифровка файла конфигурации web.config сайта IIS, как правило, нужна для скрытия строк подключения в базе данных, или настроек приложения

    Зашифровка выполняется достаточно просто из командной строки:

    C:\Windows\Microsoft.NET\Framework\v2.0.50727>aspnet_regiis.exe -pe "connectionStrings" -app "/siteName"

    Расшифровка:
    C:\Windows\Microsoft.NET\Framework\v2.0.50727>aspnet_regiis.exe -pd "connectionStrings" -app "/siteName"
    Если в Default Web Site найден указанный siteName, то указанный для скрытия/расшифровки раздел обрабатывается почти моментально
    Также рекомендую запускать команду от имени администратора (мало ли - бывает всякое)
    Ну и почитать что нить вроде http://msdn.microsoft.com/ru-ru/library/ie/k6h9cz8h.aspx

     



    • Изменено iSanSYS 1 февраля 2012 г. 22:59 читабилити (
    • Предложено в качестве ответа iSanSYS 1 февраля 2012 г. 22:59
    • Помечено в качестве ответа Abolmasov Dmitry 3 февраля 2012 г. 6:19
    1 февраля 2012 г. 22:58
  • модер - переносы строк коряво работают
    1 февраля 2012 г. 23:00
  • То есть для хостинга веб конфиг может защифровать только администратор сервера?
    2 февраля 2012 г. 13:32
  • > То есть для хостинга веб конфиг может защифровать только администратор сервера?


    зашифровать можно прямо из приложения.

    using System;
    using System.Web.Configuration;
    
    namespace WebApplication1
    {
        public class Global : System.Web.HttpApplication
        {
            void Application_Start(object sender, EventArgs e)
            {
                var c = WebConfigurationManager.OpenWebConfiguration("~/");
                var s = c.GetSection("connectionStrings");
                if(s.SectionInformation.IsProtected == false)
                {   
                    s.SectionInformation.ProtectSection("RsaProtectedConfigurationProvider");
                    c.Save();
                } 
            }
        }
    }
    
      
     
    • Помечено в качестве ответа Program-s.g 2 февраля 2012 г. 19:03
    2 февраля 2012 г. 14:21
  • о, супер, добавлю в свой сервер хелпер )
    2 февраля 2012 г. 15:01
  • Добавил этот код в global.asax, загрузил новый файл на хостинг и открыл сайт . На хостинге web.config так и остался, а на локальном получилось зашифровать после запуска проекта. Почему так?
    2 февраля 2012 г. 16:11
  • > Добавил этот код в global.asax, загрузил новый файл на хостинг и открыл сайт . На хостинге web.config так и остался, а на локальном получилось зашифровать после запуска проекта. Почему так?


    возможно, что путь к web.config на хостинге в рантайме другой. например, перед запуском сайт копируется в другую папку. проверьте значение:
    WebConfigurationManager.OpenWebConfiguration("~/").FilePath 
    
      
        
    2 февраля 2012 г. 16:58
  • Добавил этот код в global.asax, загрузил новый файл на хостинг и открыл сайт . На хостинге web.config так и остался, а на локальном получилось зашифровать после запуска проекта. Почему так?
    Права на изменение файла есть? Вечная проблема некоторых хостеров, что нельзя именно изменять файлы в корне приложения
    2 февраля 2012 г. 17:23
  • Я заметил, что после загрузки новой глобал.асакс сначало возникает ошибка, потом сайт работает нормально, откючил переадресацию, и вот ошибка Access to the path '---tmp' is denied., доступ запрещен, но я разрешил изминение веб.конфиг,но опять не получается.
    2 февраля 2012 г. 17:54

  • Права на изменение файла есть?
    Я разрешил изменение файла веб.конфиг, но все равно пишет Access to the path '---tmp' is denied., доступ запрещен
    . может нужно написать в тех.поддержку?
    • Изменено Program-s.g 2 февраля 2012 г. 18:11
    2 февраля 2012 г. 18:10
  • > Я заметил, что после загрузки новой глобал.асакс сначало возникает ошибка, потом сайт работает нормально [...] я разрешил изминение веб.конфиг,но опять не получается.


    какая ошибка? для чего шифровать web.config, если он незашифрованный закачан на хостинг? 
      
     

    2 февраля 2012 г. 18:24
  • какая ошибка? для чего шифровать web.config, если он незашифрованный закачан на хостинг?

    Access to the path '---tmp' is denied., то есть? а как загрузить зашифрованний конфиг на хостинг?
    2 февраля 2012 г. 18:31
  • > как загрузить зашифрованний конфиг на хостинг?


    так же как и незашифрованный. зашифрованный web.config это обычный текстовый/xml файл, в котором есть теги, вроде этого: <CipherValue>I3qEAmQ8V ...

     
    2 февраля 2012 г. 18:39

  • так же как и незашифрованный. зашифрованный web.config это обычный текстовый/xml файл, в котором есть теги, вроде этого: <CipherValue>I3qEAmQ8V ...

     
    Но в этом случае сайт вообще не работает
    2 февраля 2012 г. 18:56
  • Все, друзья, написал в тех.поддержке, "дали" право на изменение , и с помощью глобал.асакс получилось.Большое спасибо!!!
    2 февраля 2012 г. 19:03
  • Все, друзья, написал в тех.поддержке, "дали" право на изменение , и с помощью глобал.асакс получилось.Большое спасибо!!!
    Хе, как правило так и бывает
    • Изменено iSanSYS 3 февраля 2012 г. 8:32 опечатка
    3 февраля 2012 г. 8:30