Bu clasımızı oluştururken aşağıda ki adımları takip edeceğiz :
- Configürasyon için WebConfigurationManager kullanımı
- Tüm connection stringleri GetSection metodundan getireceğiz
- Connection stringi şifrelemek için ProtectSection metodunu kullanacağız
- 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 :
[code lang="js"]
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);
}
}
}
[/code]
Hiç yorum yok:
Yorum Gönder