2010-03-17 27 views
19

Veritabanımın adını, kullanıcı adı ve şifremi web.config dosyama bağlantı dizesi olarak yazdım.Web.config dosyasındaki bağlantı dizesini C# içinde şifreleme #

Bu verileri şifrelemek istiyorum. Nasıl yapabilirim?

Private Sub CheckConfigFile() 
    Dim config As System.Configuration.Configuration = ConfigurationManager.OpenExeConfiguration(ConfigurationUserLevel.None) 
    Dim sec As ConfigurationSection = config.AppSettings 

    If sec IsNot Nothing Then 
     If sec.SectionInformation.IsProtected = False Then 
      Debug.Write("Encrypting the application settings...") 
      sec.SectionInformation.ProtectSection(String.Empty) 
      sec.SectionInformation.ForceSave = True 
      config.Save(ConfigurationSaveMode.Full) 
      Debug.WriteLine("done!") 
     End If 
    End If 
End Sub 
+0

Bir göz atmaya değer: http://www.beansoftware.com/ASP.NET-Tutorials/Encrypting-Connection-String.aspx – Brett

cevap

5

Ben belirli bir uygulama, ben başlangıçta aşağıdaki rutin çağrı uygulama argüman -app uygulama adı kullanabilirsiniz ve belirli bir site için de site argümanı kullanabilirsiniz "-site sitesi kimlik ".

Daha fazla ayrıntı için bkz. http://msdn.microsoft.com/en-us/library/dtkwfdky.aspx.

Bunun bir web uygulaması için değil, yalnızca bir web uygulaması için çalıştığını unutmayın.

Ayrıca, yükseltilmiş ayrıcalıklara sahip bir komut isteminden çalıştırmanız gerektiğini unutmayın ("yönetici olarak çalıştır").

+14

Web sunucunuza herhangi biri girerse uygulama başlangıcında şifreleme yapmak size yardımcı olmaz. Dağıtıldığında şifrelenmelidir. Sadece bir bağlantıdan ziyade yanıt vermek için –

+4

+1. –

+0

Mükemmel. Başlangıçta bunu çalıştırmak yerine, bu kodu gerektiği gibi çalıştırabileceğiniz ayrı bir ASPX sayfası oluşturun (dağıtımdan hemen sonra). "" olan kişiler için, çalıştırmadan önce geçici olarak "" öğesini ayarlayın ve işiniz bittiğinde "Medium" a geri dönün. –

15

sadece belirli için sadece

C:\WINDOWS\Microsoft.Net\Framework(64)\(.Net version)\aspnet_regiis -pe "connectionStrings" 

yapmak, bunu yapmak için apnet_regiis aracını kullanabilirsiniz:

<connectionStrings> 
    <add name="ISP_ConnectionString" connectionString="Data Source=JIGAR; 
      Initial Catalog=ISP;Integrated Security=True; 
      User ID=jigar;Password=jigar123; 
      providerName="System.Data.SqlClient" /> 
</connectionStrings> 
+1

Bağlantı dizgisini bir makineye özgü olan DPAPI anahtarıyla şifreliyor. Bir web ortamı ortamında, bu çalışacak mı? – Dhanuka777

+0

@Dhanuka Neden olmasın? –

+1

kendi sorumu yanıtlarken, şifreleme her iki sunucuda ayrı ayrı yapılırsa iyi çalışmalıdır. Aklıma gelen senaryo, sunucu A'da kullanmak için Sunucu A'daki şifrelenmiş webconfig dosyasını kullanamayacağınızdı. – Dhanuka777

İlgili konular