Динамическое шифрование web.config с использованием aspnet_regiis в c # - PullRequest
0 голосов
/ 06 февраля 2019

Я пытался централизовать web.config / app.config, используя одну утилиту.Я могу преобразовать все файлы app.config в любую папку, но я застрял с web.config.Кажется, webconfigurationmanager не будет работать вне виртуального каталога.Поэтому я пытался реализовать метод шифрования-дешифрования aspnet_regiis в своем инструменте.

private void RunProcess(string processName, string arguments)
    {
        var newProcess = new ProcessStartInfo(processName);
        //Log("User: " + GetSystemName());

        if (null != arguments && arguments.Any())
        {
            newProcess.Arguments = arguments;
            newProcess.CreateNoWindow = true;
            newProcess.ErrorDialog = true;
            newProcess.RedirectStandardError = true;
            newProcess.RedirectStandardOutput = true;
            newProcess.UseShellExecute = false;
        }
        using (var proc = new Process())
        {
            proc.StartInfo = newProcess;
            proc.Start();
            Console.WriteLine(proc.StandardOutput.ReadToEnd());
            proc.WaitForExit();
        }
    }

private void Encrypt(string path)
    {
        string framework = @"C:\Windows\Microsoft.NET\Framework64\v4.0.30319\aspnet_regiis.exe";

        if (8 == IntPtr.Size
            || (!String.IsNullOrEmpty(Environment.GetEnvironmentVariable("PROCESSOR_ARCHITEW6432"))))
            framework = @"C:\Windows\Microsoft.NET\Framework64\v4.0.30319\aspnet_regiis.exe";


        RunProcess(framework, " -pef \"connectionStrings\"  \"C:\\Users\\xxx\\Desktop\\somefolder\" –prov \"DataProtectionConfigurationProvider\"");
    }

Мои сомнения:

"-pef \" connectionStrings \ "\" C: \ Users \ xxx \ Desktop \ somefolder \ "–prov \" DataProtectionConfigurationProvider \ ""

Я уверен, что я делаю здесь какую-то ошибку, команда просто не выполняется.Это дает мне опции справки aspnet_regiis.

1 Ответ

0 голосов
/ 06 февраля 2019

Извините, моя ошибка.кажется, C # вообще не нужен поставщик.Я изменил его на

"-pef \" connectionStrings \ "\" C: \ Users \ xxx \ Desktop \ somefolder \ ""

и вуаля!это удалось.

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