Web.Config İçerisinde Ki Connection String’i Şifrelemek – 2

ConnectionStringsSection class : 

Bu clasımızı oluştururken aşağıda ki adımları takip edeceğiz :

  1. Configürasyon için WebConfigurationManager kullanımı
  2. Tüm connection stringleri GetSection metodundan getireceğiz
  3. Connection stringi şifrelemek için ProtectSection metodunu kullanacağız
  4. Son olarak web.config dosyamızı kaydedeceğiz.

1. Configürasyon için WebConfigurationManager kullanımı

Configuration configuration = WebConfigurationManager.OpenWebConfiguration(“~”);

2. GetSection metodundan Connection string listesini getiriyoruz
ConnectionStringsSection connectionStringsSection = (ConnectionStringsSection)configuration.GetSection(“connectionStrings”);

3. Connection string şifreleme için ProtectSection  metodunu kullanıyoruz

ProtectSection(“DataProtectionConfigurationProvider”);

4. Web.config dosyasını kaydederek bitiriyoruz – SectionInformation.ForceSave = true;

Örnek kod :

 

using System;
using System.Collections.Generic;
using System.Configuration;
using System.Linq;
using System.Web;
using System.Web.Configuration;
using System.Web.Mvc;
using System.Web.Optimization;
using System.Web.Routing;
namespace Encrypt_Connection_String
{
public class MvcApplication : System.Web.HttpApplication
{
protected void Application_Start()
{
AreaRegistration.RegisterAllAreas();
FilterConfig.RegisterGlobalFilters(GlobalFilters.Filters);
RouteConfig.RegisterRoutes(RouteTable.Routes);
BundleConfig.RegisterBundles(BundleTable.Bundles);

Configuration configuration = WebConfigurationManager.OpenWebConfiguration("~");
ConnectionStringsSection connectionStringsSection = (ConnectionStringsSection)configuration.GetSection("connectionStrings");
AppSettingsSection appSettingsSection = (AppSettingsSection)configuration.GetSection("appSettings");
EncryptConnectionStrings(configuration, connectionStringsSection);
EncryptAppSettings(configuration, appSettingsSection);
}
//Connection string şifreleme
private static void EncryptConnectionStrings(Configuration config, ConnectionStringsSection connectionStringsSection)
{
if (!connectionStringsSection.SectionInformation.IsProtected)
{
connectionStringsSection.SectionInformation.ProtectSection("DataProtectionConfigurationProvider");
connectionStringsSection.SectionInformation.ForceSave = true;
}

config.Save(ConfigurationSaveMode.Modified);
}
//App Settings şifreleme
private static void EncryptAppSettings(Configuration config, AppSettingsSection appSettingsSection)
{
if (!appSettingsSection.SectionInformation.IsProtected)
{
appSettingsSection.SectionInformation.ProtectSection("DataProtectionConfigurationProvider");
appSettingsSection.SectionInformation.ForceSave = true;
}
config.Save(ConfigurationSaveMode.Modified);
}
}
}

Muavenet

Web teknolojilerine merak salmış bir bilgisayar mühendisinin yazıları

Bir cevap yazın

E-posta hesabınız yayımlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir