<system.net>
<mailSettings>
<smtp from="email@domain.com" deliveryMethod="Network">
<network clientDomain="www.domain.com" host="smtp.live.com" defaultCredentials="false" port="25" userName=" email@domain.com " password="password" enableSsl="true" />
</smtp>
</mailSettings>
</system.net>
This is the case where I need encryption for my password. I searched and googled much on the web but I can’t be able to encrypt anymore.
这是我需要加密密码的情况。我在网上搜索和搜索了很多,但我无法再加密了。
Can anyone help me do this in a simple but secure way.
任何人都可以帮助我以简单但安全的方式做到这一点。
3 个解决方案
#1
6
I wrote an article about that on my blog: http://pvlerick.github.io/2009/03/encrypt-appconfig-section-using-powershell-as-a-post-build-event
我在我的博客上写了一篇关于它的文章:http://pvlerick.github.io/2009/03/encrypt-appconfig-section-using-powershell-as-a-post-build-event
My idea was that you want the password to be clear in the IDE, but encrypted in the output folder's web.config/app.config.
我的想法是你希望在IDE中清除密码,但在输出文件夹的web.config / app.config中加密。
The script is
脚本是
param(
[String] $appPath = $(throw "Application exe file path is mandatory"),
[String] $sectionName = $(throw "Configuration section is mandatory"),
[String] $dataProtectionProvider = "DataProtectionConfigurationProvider"
)
#The System.Configuration assembly must be loaded
$configurationAssembly = "System.Configuration, Version=2.0.0.0, Culture=Neutral, PublicKeyToken=b03f5f7f11d50a3a"
[void] [Reflection.Assembly]::Load($configurationAssembly)
Write-Host "Encrypting configuration section..."
$configuration = [System.Configuration.ConfigurationManager]::OpenExeConfiguration($appPath)
$section = $configuration.GetSection($sectionName)
if (-not $section.SectionInformation.IsProtected)
{
$section.SectionInformation.ProtectSection($dataProtectionProvider);
$section.SectionInformation.ForceSave = [System.Boolean]::True;
$configuration.Save([System.Configuration.ConfigurationSaveMode]::Modified);
}
Write-Host "Succeeded!"
The post-build command is
后构建命令是
powershell "& ""C:\Documents and Settings\VlericP\My Documents\WindowsPowerShell\EncryptAppConfigSection.ps1""" '$(TargetPath)' 'connectionStrings'
#2
3
This is another way to encrypt and decrypt coonection string check it if you are using vs2010 then open vs2010 with run as administrator
这是加密和解密连接字符串的另一种方法,如果您使用vs2010然后以管理员身份运行打开vs2010,请检查它
string provider = "RSAProtectedConfigurationProvider";
string section = "connectionStrings";
protected void btnEncrypt_Click(object sender, EventArgs e)
{
Configuration confg =
WebConfigurationManager.OpenWebConfiguration(Request.ApplicationPath);
ConfigurationSection configSect = confg.GetSection(section);
if (configSect != null)
{
configSect.SectionInformation.ProtectSection(provider);
confg.Save();
}
}
protected void btnDecrypt_Click(object sender, EventArgs e)
{
Configuration config =
WebConfigurationManager.OpenWebConfiguration(Request.ApplicationPath);
ConfigurationSection configSect = config.GetSection(section);
if (configSect.SectionInformation.IsProtected)
{
configSect.SectionInformation.UnprotectSection();
config.Save();
}
}
#3
1
Here is a thread on ASP.NET forums that has some brainstorming going on and provide a few possible solutions:
这是ASP.NET论坛上的一个主题,它正在进行一些头脑风暴并提供一些可能的解决方案:
How to encrypt the SMTP Node in web.config
如何在web.config中加密SMTP节点
#1
6
I wrote an article about that on my blog: http://pvlerick.github.io/2009/03/encrypt-appconfig-section-using-powershell-as-a-post-build-event
我在我的博客上写了一篇关于它的文章:http://pvlerick.github.io/2009/03/encrypt-appconfig-section-using-powershell-as-a-post-build-event
My idea was that you want the password to be clear in the IDE, but encrypted in the output folder's web.config/app.config.
我的想法是你希望在IDE中清除密码,但在输出文件夹的web.config / app.config中加密。
The script is
脚本是
param(
[String] $appPath = $(throw "Application exe file path is mandatory"),
[String] $sectionName = $(throw "Configuration section is mandatory"),
[String] $dataProtectionProvider = "DataProtectionConfigurationProvider"
)
#The System.Configuration assembly must be loaded
$configurationAssembly = "System.Configuration, Version=2.0.0.0, Culture=Neutral, PublicKeyToken=b03f5f7f11d50a3a"
[void] [Reflection.Assembly]::Load($configurationAssembly)
Write-Host "Encrypting configuration section..."
$configuration = [System.Configuration.ConfigurationManager]::OpenExeConfiguration($appPath)
$section = $configuration.GetSection($sectionName)
if (-not $section.SectionInformation.IsProtected)
{
$section.SectionInformation.ProtectSection($dataProtectionProvider);
$section.SectionInformation.ForceSave = [System.Boolean]::True;
$configuration.Save([System.Configuration.ConfigurationSaveMode]::Modified);
}
Write-Host "Succeeded!"
The post-build command is
后构建命令是
powershell "& ""C:\Documents and Settings\VlericP\My Documents\WindowsPowerShell\EncryptAppConfigSection.ps1""" '$(TargetPath)' 'connectionStrings'
#2
3
This is another way to encrypt and decrypt coonection string check it if you are using vs2010 then open vs2010 with run as administrator
这是加密和解密连接字符串的另一种方法,如果您使用vs2010然后以管理员身份运行打开vs2010,请检查它
string provider = "RSAProtectedConfigurationProvider";
string section = "connectionStrings";
protected void btnEncrypt_Click(object sender, EventArgs e)
{
Configuration confg =
WebConfigurationManager.OpenWebConfiguration(Request.ApplicationPath);
ConfigurationSection configSect = confg.GetSection(section);
if (configSect != null)
{
configSect.SectionInformation.ProtectSection(provider);
confg.Save();
}
}
protected void btnDecrypt_Click(object sender, EventArgs e)
{
Configuration config =
WebConfigurationManager.OpenWebConfiguration(Request.ApplicationPath);
ConfigurationSection configSect = config.GetSection(section);
if (configSect.SectionInformation.IsProtected)
{
configSect.SectionInformation.UnprotectSection();
config.Save();
}
}
#3
1
Here is a thread on ASP.NET forums that has some brainstorming going on and provide a few possible solutions:
这是ASP.NET论坛上的一个主题,它正在进行一些头脑风暴并提供一些可能的解决方案:
How to encrypt the SMTP Node in web.config
如何在web.config中加密SMTP节点