2010-03-06 2 views

답변

0

@ Li0liQ의 덧붙여 말하면 .NET Framework 2.0+ aspnet_regiis과 함께 제공되는 명령 줄 프로그램을 사용할 수 있습니다. MSDN 설명서를 확인하십시오. here

2

수동으로 보호하려면 ProtectedData 클래스를 사용할 수 있습니다. 일부 코드 :

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); 
    } 
} 

여기서 간단한 테스트이다 :

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(); 
} 
관련 문제