Como criptografar uma input no web.config

ASP.NET 4

Eu usei criptografia de chave RSA para seqüências de conexão no web.config no farm da web. No entanto, há mais uma input de senha personalizada que gostaria de criptografar. Como devo criptografá-lo com a chave RSA sem que as configurações restantes sejam criptografadas. Por favor, informe, obrigado.

Exemplo:

 ...         

Você pode colocar a senha em uma seção separada e criptografar apenas esta seção. Por exemplo:

    

e então (note que estou usando DPAPI no meu exemplo, então adapte o provedor para RSA):

 aspnet_regiis -pef secureAppSettings . -prov DataProtectionConfigurationProvider 

Uma vez criptografado, o arquivo ficará assim:

    
AQAAANCMnd.......

A maneira como você acessaria essas configurações em seu aplicativo depois que o arquivo fosse criptografado ainda é a mesma e completamente transparente:

 var host = ConfigurationManager.AppSettings["Host"]; var password = ConfigurationManager.AppSettings["Password"]; 

Em c # e .Net 4.5 eu tive que usar isso para ler a configuração criptografada:

 string password = ((System.Collections.Specialized.NameValueCollection)ConfigurationManager.GetSection("secureAppSettings"))["Password"].ToString(); 

mas de outra forma funciona um deleite.

Você não pode criptografar uma única input – a infra-estrutura permite apenas a criptografia de todas as seções de configuração.

Uma opção é colocar a input em sua própria seção de configuração e criptografá-la.