我试图使用一个实用工具集中化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帮助选项。
答案 0 :(得分:0)
对不起,我的错。看来C#根本不需要提供程序。我将其更改为
“ -pef \” connectionStrings \“ \” C:\ Users \ xxx \ Desktop \ somefolder \“”
瞧!成功了。