2010-03-06 7 views

risposta

0

Oltre al commento di @ Li0liQ, è possibile utilizzare il programma della riga di comando fornito con .NET Framework 2.0+ aspnet_regiis. Consultare la documentazione MSDN here

2

Se si desidera eseguire manualmente la protezione, è possibile utilizzare la classe ProtectedData. Alcuni codice:

class ConnectionStringProtector 
{ 
    readonly byte[] _salt = new byte[] { 1, 2, 3, 4, 5, 6 }; // Random values 
    readonly Encoding _encoding = Encoding.Unicode; 
    readonly DataProtectionScope _scope = DataProtectionScope.LocalMachine; 

    public string Unprotect(string str) 
    { 
     var protectedData = Convert.FromBase64String(str); 
     var unprotected = ProtectedData.Unprotect(protectedData, _salt, _scope); 
     return _encoding.GetString(unprotected); 
    } 

    public string Protect(string unprotectedString) 
    { 
     var unprotected = _encoding.GetBytes(unprotectedString); 
     var protectedData = ProtectedData.Protect(unprotected, _salt, _scope); 
     return Convert.ToBase64String(protectedData); 
    } 
} 

qui è un semplice test:

static void Main(string[] args) 
{ 
    var originalConnectionString = "original string"; 

    var protector = new ConnectionStringProtector(); 

    var protectedString = protector.Protect(originalConnectionString); 
    Console.WriteLine(protectedString); 
    Console.WriteLine(); 

    var unprotectedConnectionString = protector.Unprotect(protectedString); 
    Console.WriteLine(unprotectedConnectionString); 

    Console.WriteLine("Press ENTER to finish"); 
    Console.ReadLine(); 
} 
Problemi correlati