2010-03-06 41 views

回答

0

繼@ Li0liQ的評論,你可以使用隨.NET框架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(); 
} 
相關問題