![]() | |||||
c# app.config connectionstring şifreleme |
C# Projelerinizde App.config dosyası otomatik olarak yeni proje açıldığında gelmektedir. Bu app.config ne işe yarar? Xml tabanlı bir takım kodları uygulamaya gömmek yerine daha kolay değiştirme sağlamak amacıyla kod tekrarını azaltan bir yapıdır. İçerisine veritabanı bağlantısı kurmak için connectionstrings oluşturulur. Bu connectionstringsi şifrelemek istersek nasıl yapabiliriz?
Bunun için öncelikli olarak bir connectionstrings oluşturmanız gerekir. Localde çalışacak bir uygulama için;
connectionStrings" connectionString="Data Source = Mydatabase.db;Password=123456789*;Version=3;"
providerName="System.Data.SQLite" />
şeklinde bir veritaanı bağlantı kodu oluşturalım.
(Bunu uygulamanıza göre değiştirebilirsiniz.)
public void con()şeklinde bir kod ile appconfig dosyasında bulunan connectionstrings verilerinin tamamını bilgisayara göre şifreleme yapabiliriz. Burada dikkat edilmesi gereken bir şey var. Yazdığınız programı build ettikten sonra çalıştırmayıp setup oluşturmanız gerekmekte. Eğer çalıştırırsanız şifreleme sizin bilgisayarınıza göre olacağı için başka bilgisayarlarda hata verecektir. Bunu önlemek için de con() u çağıracağınız yeri iyi ayarlamanız gerekmektedir.
{
Configuration config = ConfigurationManager.OpenExeConfiguration("uygulamaadınız.exe");
ConnectionStringsSection section = config.GetSection("connectionStrings") as ConnectionStringsSection;
if (!section.SectionInformation.IsProtected)
{
section.SectionInformation.ProtectSection("DataProtectionConfigurationProvider");
}
config.Save();
}
section.SectionInformation.UnprotectSection();
kodu ile varolan korumayı kaldırabilirsiniz.
SQLiteConnection conn = new SqlConnection(ConfigurationManager.ConnectionStrings["ConnectionString"].ConnectionString);
return con;
yukarıdaki kod ile bir metot oluşturup geriye dönen değere göre de veritabanına bağlanma işlemini kolayca yapabilirsiniz.
Hiç yorum yok:
Yorum Gönderme