2010-03-06 15 views

Trả lời

0

Ngoài nhận xét của @ Li0liQ, bạn có thể sử dụng chương trình dòng lệnh đi kèm với .NET Framework 2.0+ aspnet_regiis. Kiểm tra tài liệu MSDN here

2

Nếu bạn muốn bảo vệ theo cách thủ công, bạn có thể sử dụng lớp ProtectedData. Một số mã:

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

đây là một thử nghiệm đơn giản:

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(); 
} 
Các vấn đề liên quan