در توسینسو تدریس کنید

و

با دانش خود درآمد کسب کنید

رمزنگاری Connection String در فایل web.config

در این مطلب نحوه رمزنگاری EnCrypt و DeCrypt کردن رشته اتصال به بانک اطلاعاتی ConnectionString های موجود در Web.Config را خواهیم گفت

برای شروع یک رشته اتصال Connection Stringدر Web.Config قرا میدهیم مطابق کد زیر

<connectionStrings>
    <add name="con" connectionString="Data Source=.;Initial Catalog=master;Persist Security Info=True;User ID=sa;Password=123"
        providerName="System.Data.SqlClient" />
</connectionStrings>

سپس دگمه یا Button در صفحه فرم ایجاد میکنیم و خاصیت Text را EnCrypt قرا میدیم و کد های زیر را درون آن قرار میدهیم.

Configuration config = WebConfigurationManager.OpenWebConfiguration(Request.ApplicationPath);
ConfigurationSection appSettings = config.GetSection("connectionStrings");
appSettings.SectionInformation.ProtectSection("DataProtectionConfigurationProvider");
config.Save();

بعد از اجرا شدن کدها رشته های اتصال موجود در Web Config رمز نگاری خواهند شد

<connectionStrings configProtectionProvider="DataProtectionConfigurationProvider">
    <EncryptedData>
        <CipherData>
            <CipherValue>AQAAANCMnd8BFdERjHoAwE/Cl+sBAAAAuHWB/xqx3EuXCSI4lLGE8AQAAAACAAAAAAAQZgAAAAEAACAAAADNcp3rRrXdG8fKjddD1Haug6Mc96avJuPnosZ0iYEurwAAAAAOgAAAAAIAACAAAADP86XwZeu0cKzQXXKe1Kk/deE0zoZXLAbbZGN++F07vLABAAAYu4g3oQCT7Y/uPTVYLfHYTzLL+MD/Z5/7Yj6A0LNcu5A30SYHUqEQPqTqdTx2XdWrZQr7GS1lUwhuCeRgc94P/vooJrShZ5rcxhab8ihLb0F+T0/mbQKaQFUCnvLkSHY3rvBn3AwW9use6QOJp3EFjZEcJA/mIEuW5AMVnMTGBpk+j3nmknECFrj7+Rj6UK4EFrdtafjZAcXdAIh6AgrHhA3tZhPIoWsNVz29a4STXlhYW2cdD8Ct5HncvHXn7OwvgUBD7HUw3hm6e3Sw+jQd16Snx4FBRVZ3o8PnJ/YZDECP5XAgHIYZ6UCNuG7EUq5uWHTrolAt6jqeiR0gRYddl96+q9dFD1M6oAdJHMznRmKNY3hZt6m1d6RjG/08GQZk6lXkVrCvaSFYMqsjvqTjKqyDaeyUtB76NNHRiF8NP07Sgn0MqhElFrTxoBHVGPgQNnNk1prJ3yaORD4qglXAuHQMG2C7HuIoExaokZpBDbKBasLIFY+MOOLAruXPgOx1Jk/TbsXl01teF7pENsAB/s9AUTYM6QOCmgbAiolGlxUCoDUatE15KSjQuufR6vhAAAAAepX+tguXiv0oa6U4vIi3LpCFADCBYsHcDZaUPIyxlUxETPyJWdnpP+qN0c4SOAYHDfWb4+REOsyxEHZy3vjKtA==</CipherValue>
        </CipherData>
    </EncryptedData>
</connectionStrings>

سپس یک دگمه دیگر به نام Decrypt در فرم ایجاد کرده و کد های زیر را داخل رویداد آن مینویسیم

Configuration config = WebConfigurationManager.OpenWebConfiguration(Request.ApplicationPath);
 
     ConfigurationSection appSettings = config.GetSection("connectionStrings");
 
     appSettings.SectionInformation.UnprotectSection();
     config.Save();

که در این حالت پس از اجرا شدن کدها رشته اتصال از رمزنگاری خارج خواهد شد و Decrypt خواهند گردید.

<connectionStrings>
    <add name="con" connectionString="Data Source=.;Initial Catalog=master;Persist Security Info=True;User ID=sa;Password=123"
        providerName="System.Data.SqlClient" />
</connectionStrings>

نکته:جهت استفاده از رشته اتصال در برنامه نیازی به DeCrypt کردن آن نیست.

#امنیت_فایل_webconfig #رمز_نگاری_در_برنامه_نویسی #رمز_کردن_اطلاعات_webconfig #فایل_webconfig #به_روز_رسانی_webconfig #امن_کردن_webconfig #امنیبت_در_برنامه_نویسی #رمز_نگاری_در_connection_string
2 نظر
حسین احمدی

ممنون از فرهاد عزیز، Connection String رو میشه با دستور aspnet_regiis در محیط command line نیز رمزگذاری کرد:

aspnet_regiis -pe "connectionStrings" -app "/ITPro"

برای مثال بالا، بخش connection string در فایل web.config برای Application ایی با نام ITPro رمز گذاری میشه.

برای برگرداندن connection string به حالت اولیه از کد زیر میشه استفاده کرد:

aspnet_regiis -pd "connectionStrings" -app "/ITPro"
hmahdavi921

سلام

ممنون از مطلب خوبتون.

من در لوکال این کار رو انجام دادم . اما در سرورمون خطا میده.

Message:::

An error occurred loading a configuration file: Access to the path 'C:\inetpub\wwwroot\NewTravelEnter\k023fdc1.tmp' is denied. (C:\inetpub\wwwroot\NewTravelEnter\web.config) --

InnerException:::

System.UnauthorizedAccessException: Access to the path 'C:\inetpub\wwwroot\NewTravelEnter\k023fdc1.tmp' is denied. at System.IO.__Error.WinIOError(Int32 errorCode, String maybeFullPath)

at

نظر شما
برای ارسال نظر باید وارد شوید.
از سرتاسر توسینسو
تنظیمات حریم خصوصی
تائید صرفنظر
×

تو می تونی بهترین نتیجه رو تضمینی با بهترین های ایران بدست بیاری ، پس مقایسه کن و بعد خرید کن : فقط توی جشنواره پاییزه می تونی امروز ارزونتر از فردا خرید کنی ....