COMO USAR O APP.CONFIG DO MODO CERTO?

MARCOS 18/09/2013 10:26:40
#429005
Bom dia!
Determinado a melhorar meus códigos em .NET,
decidi armazenar minha [Ô]String de Configuração[Ô] no App.Config.
Criar o arquivo é simples e rápido.No entanto estou com dificuldade
em três coisas simples:

1.) Estou usando o VB.NET (2010) Express.Para ler a string de conexão no App.Config
estou tentando o seguinte :

Dim StringDeConexao As String
StringDeConexao = System.Configuration.ConfigurationSettings.AppSettings.Get([Ô]StringCon[Ô])

Mas não esta funcionando. Esta sintaxe esta correta?


2.) Gostaria de guardar a String de conexão [Ô]Criptograda[Ô] no App.Config.
Para isto, eu devo criptografar em separado a String de conexão,abrir e colocar manualmente
o texto criptografado no App.Config,ou existe um modo mais prático?


3.) Fazendo tudo isto,ou seja armazenando no App.cong e criptografando a String ,minha conexão
estara segura????


Agradeço qualquer orientação
ALEVALE 18/09/2013 13:34:06
#429026
Resposta escolhida
Faço mais ou menos a mesma coisa...

Porém tenho um modulo que criptografa as informações dentro do sistema, a unica coisa que eu informo no APP.CONFIG é a chave que irá gerar a senha...
O usuário e senha estão criptografados e com a chave (CHAVE_1234) dentro do meu sistema eu descriptorgrafo e tenho o usuário e senha

<appSettings>
<!-- CHAVE CRIPTOGRAFIA -->
<add key=[Ô]Key[Ô] value=[Ô]CHAVE_1234[Ô]/>

<!-- DOMINIO -->
<!-- USUARIOAD E USUARIOSENHAAD SÃO CRIPTOGRAFADOS -->
<add key=[Ô]UsuarioAD[Ô] value=[Ô]FonbDQ0Jvrgbv6VC5k58uw==[Ô]/>
<add key=[Ô]UsuarioSenhaAD[Ô] value=[Ô]l+3i2liXjVQ=[Ô]/>

</appSettings>
MARCOS 18/09/2013 14:58:28
#429036
Pessoal,
Eu vi exemplos,na internet em que se criptografa o App.Config usando a própia classe [Ô]Configuration[Ô].
Mas,para ser sincero,eu gostaria de fazer como o colega ALEVALE fez.Ou seja,ler a String criptografada e
depois descriptografar no meu sistema.Mas,como nunca fiz isto,pergunto....


Tudo bem , descriptografar a String de conexão depois de ler do APP.Config,ou existe algum problema de segurança
neste modo de se trabalhar???
PEDROALSOI 19/09/2013 19:09:51
#429086
pode falar aonde vc viu que também quero isso.
ALEVALE 20/09/2013 09:03:40
#429096
A pedidos....

CLASSE:
Imports System.Text
Imports System.Security.Cryptography
Imports System.Configuration

Public Class clsCriptografia
Private Shared TripleDES As New TripleDESCryptoServiceProvider
Private Shared MD5 As New MD5CryptoServiceProvider
Private Shared key As String = ConfigurationManager.AppSettings([Ô]ChaveCriptorgrafia[Ô]).ToString()

Public Shared Function MD5Hash(ByVal value As String) As Byte()
Try
Dim byteArray() As Byte = ASCIIEncoding.ASCII.GetBytes(value)
Return MD5.ComputeHash(byteArray)
Catch ex As Exception
fncGravaLog([Ô]MD5HASH[Ô], ex.StackTrace, ex.Message.ToString)
End Try
End Function

Public Shared Function Encrypt(ByVal stringToEncrypt As String) As String
Try
TripleDES.Key = clsCriptografia.MD5Hash(key)
TripleDES.Mode = CipherMode.ECB

Dim Buffer As Byte() = ASCIIEncoding.ASCII.GetBytes(stringToEncrypt)
Return Convert.ToBase64String(TripleDES.CreateEncryptor().TransformFinalBlock(Buffer, 0, Buffer.Length))

Catch ex As Exception
fncGravaLog([Ô]ENCRYPT[Ô], ex.StackTrace, ex.Message.ToString)
End
End Try

End Function

Public Shared Function Decrypt(ByVal encryptedString As String) As String
Try
TripleDES.Key = clsCriptografia.MD5Hash(key)
TripleDES.Mode = CipherMode.ECB

Dim Buffer As Byte() = Convert.FromBase64String(encryptedString)
Return ASCIIEncoding.ASCII.GetString(TripleDES.CreateDecryptor().TransformFinalBlock(Buffer, 0, Buffer.Length))

Catch ex As Exception
fncGravaLog([Ô]DECRYPT[Ô], ex.StackTrace, ex.Message.ToString)
End

Return String.Empty
End Try
End Function

End Class

FUNÇÃO:
[ô][ô][ô] <summary>
[ô][ô][ô] DESCRIPTOGRAFA AS INFORMAÇÕES DE USUÁRIO E SENHA
[ô][ô][ô] </summary>
[ô][ô][ô] <returns>USUÁRIO E SENHA DESCRIPTOGRAFADOS</returns>
Public Function fncCriptografia()
Try
ConfigurationManager.RefreshSection([Ô]appSettings[Ô])
strUsuarioCriptografiaAD = clsCriptografia.Decrypt(ConfigurationManager.AppSettings([Ô]UsuarioAD[Ô]).ToString())
strSenhaCriptografiaAD = clsCriptografia.Decrypt(ConfigurationManager.AppSettings([Ô]UsuarioSenhaAD[Ô]).ToString())

Catch ex As Exception
fncGravaLog([Ô]FNCCRIPTOGRAFIA[Ô], ex.StackTrace, ex.Message.ToString)
End Try
End Function

[ô]VARIAVEIS
[ô]VARIAVEIS CRIPTOGRAFIA
Public Const ENCRYPT = 1
Public DECRYPT = 2
Public strUsuarioCriptografiaAD As String
Public strSenhaCriptografiaAD As String
ALEVALE 20/09/2013 09:22:58
#429097
Coloquei um exemplo em anexo.
Tópico encerrado , respostas não são mais permitidas