آموزش ASP.Net > اتصال به منابع داده ای در ASP.Net > مطمئن کردن Connection Strings
ای در ASP.Net
مقدمه :
هنگام کار با کنترل های سرور داده ، بهتر است رشته های ارتباطی ( Connection String
) برنامه خود را در فایل web.config سایت متمرکز کنید . این کار همانطور که در بخش
های قبل توضیح دادیم ، دارای چندین مزیت عمده است :
- شما می توانید یک Connection String ساخته و با اشاره به آن ازش در هر کنترل سرور داده
دیگری در هر جای سایت استفاده نمایید ، به جای اینکه هر بار در هر صفحه و در هر کنترل
مجددا مشابه آن را تعریف نمایید .
- می توانید با رمزگذاری ( encrypt ) رشته های ارتباطی در فایل web.config امنیت آنها
را بالا برده و یک لایه حفاظتی برایشان ایجاد نمایید .
- هر بار که مشخصات رشته ارتباطی تغییر کند ، کافی است اطلاعات آن را یکبار درون فایل
web.config به روز کرده و این تغییر در تمام سایت اعمال می شود .
در این بخش ، شما یاد خواهید گرفت چگونه Connection String های مورد نظر خود را به
وسیله ویژوال استودیو و کنترل های سرور داده در فایل web.config قرار داده و سپس با استفاده از ابزار Aspnet_regiis.exe ، این رشته های ارتباطی را برای بالا بردن بالا
بردن امنیت و افزودن لایه حفاظتی ، رمز گذاری نمایید .
مرحله اول :
نحوه اضافه کردن یک Connection String به فایل web.config توسط یک کنترل سرور داده
:
- صفحه مورد نظر خود را در ویژوال استودیو و در نمای Design باز کنید .
- از بخش کنترل های Data منوی Toolbox ، یک کنترل سرور داده مثل
SqlDataSource را انتخاب کرده و بر روی صفحه قرار دهید .
- بر روی کنترل سرور داده کلیک راست کرده و گزینه Show Smart Tag را انتخاب کنید
.
- در پنل Smart Tag ، گزینه Configure Data Source را انتخاب نمایید .
- در پنل Choose a Data Connection ، گزینه New Connection را کلیک نمایید
. پنجره ای مطابق تصویر زیر باز می شود :
نوع و آدرس پایگاه داده مورد نظر خود را از لیست Data Source انتخاب نموده و
اطلاعات لازم برای بخش های server name , user name و password در پنجره Add Connection
تعیین کرده و گزینه Ok را بزنید .
- برنامه شما را با خلاصه ای از اطلاعات Connection ایجاد شده به پنجره Configure
Data Source مطابق عکس زیر ، باز می گرداند .
- بر روی گزینه Next و سپس گزینه Yes کلیک نمایید تا Connection String شما در فایل web.config
ایجاد و ذخیره شود . از این به بعد می توانید با اشاره به این Connection String ،
از آن در هر جای برنامه خود و برای کنترل های سرور داده استفاده نمایید .
کد Connection String ایجاد شده در فایل web.config شبیه کد زیر خواهد بود :
|
کد
|
<connectionStrings>
<add name="Main_DBConnectionString"
connectionString="Data Source=.\SQLEXPRESS;AttachDbFilename="D:\Developer
v.4\App_Data\Main_DB.mdf";Integrated
Security=True;Connect Timeout=30;User
Instance=True" providerName="System.Data.SqlClient" />
</connectionStrings>
|
مرحلله دوم :
نحوه رمزنگاری ( encrypt ) رشته های ارتباطی ( connection string ) در فایل web.config
:
- در خط فرمان ویندوز ، ابزار Aspnet_regiis.exe را با تایپ عبارت Aspnet_regiis.exe
با پارامترهای زیر ، اجرا نمایید :
- عبارت pe- را به قبل نام "connectionStrings" برای رمزگذاری رشته های ارتباطی اضافه
نمایید .
- عبارت app- را به قبل نام برنامه خود برای رمزگذاری آن اضافه کنید .
راهنمایی : فایل Aspnet_regiis.exe بر روی کامپیوتر شما در پوشه ای در
مسیر %systemroot%\Microsoft.NET\Framework\versionNumber قرار
دارد .
کد زیر ، نحوه فراخوانی ابزار Aspnet_regiis.exe ، همراه با ارسال پارامترهای ذکر شده
را نشان می دهد :
|
کد
|
aspnet_regiis -pe "connectionStrings" -app "/SampleApplication"
|
پس از اجرای دستور فوق ، محتویات فایل web.comfig را مشاهده نمایید . خواهید دید که
بخش المنت <configuration> که connectionstring ها در آن قرار دارند ، حاوی اطلاعات
اضافه ای است که باعث رمز گذاری آن شده است . برای مثال ، کد این بخش به صورت زیر در
خواهد آمد :
|
کد
|
<configuration>
<connectionStrings configProtectionProvider="RsaProtectedConfigurationProvider">
<EncryptedData Type=" http://www.w3.org/2001/04/xmlenc#Element"
xmlns="http://www.w3.org/2001/04/xmlenc#">
<EncryptionMethod Algorithm="http://www.w3.org/2001/04/xmlenc#tripledes-cbc"
/>
<KeyInfo xmlns="http://www.w3.org/2000/09/xmldsig#">
<EncryptedKey
xmlns="http://www.w3.org/2001/04/xmlenc#">
<EncryptionMethod
Algorithm="http://www.w3.org/2001/04/xmlenc#rsa-1_5" />
<KeyInfo xmlns="http://www.w3.org/2000/09/xmldsig#">
<KeyName>
RSA Key </KeyName>
</KeyInfo>
<CipherData>
<CipherValue>WcFEbDX8VyLfAsVK8g6hZVAG1674ZFc1kWH0BoazgOwdBfinhcAmQmnIn0oHtZ5tO2EXGl+dyh10giEmO9NemH4YZk+iMIln+ItcEay9CGWMXSen9UQLpcQHQqMJErZiPK4qPZaRWwqckLqriCl9X8x9OE7jKIsO2Ibapwj+1Jo=
</CipherValue>
</CipherData>
</EncryptedKey>
</KeyInfo>
<CipherData>
<CipherValue>OpWQgQbq2wBZEGYAeV8WF82yz6q5WNFIj3rcuQ8gT0MP97aO9SHIZWwNggSEi2Ywi4oMaHX9p0NaJXG76aoMR9L/WasAxEwzQz3fexFgFSrGPful/5txSPTAGcqUb1PEBVlB9CA71UXIGVCPTiwF7zYDu8sSHhWa0fNXqVHHdLQYy1DfhXS3cO61vW5e/KYmKOGA4mjqT0VZaXgb9tVeGBDhjPh5ZlrLMNfYSozeJ+m2Lsm7hnF6VvFm3fFMXa6+h0JTHeCXBdmzg/vQb0u3oejSGzB4ly+V9O0T4Yxkwn9KVDW58PHOeRT2//3iZfJfWV2NZ4e6vj4Byjf81o3JVNgRjmm9hr9blVbbT3Q8/j5zJ+TElCn6zPHvnuB70iG2KPJXqAj2GBzBk6cHq+WNebOQNWIb7dTPumuZK0yW1XDZ5gkfBuqgn8hmosTE7mCvieP9rgATf6qgLgdA6zYyVV6WDjo1qbCV807lczxa3bF5KzKaVUSq5FS1SpdZKAE6/kkr0Ps++CE=
</CipherValue>
</CipherData>
</EncryptedData>
</connectionStrings>
</configuration>
|
خط فرمان ویندوز را برای اجرای دستورات بعدی باز بگذارید .
- در مرحله بعدی ، نام کاربر استفاده کننده از سیستم را با استفاده از خاصیت WindowsIdentify
استخراج می کنیم . کد زیر نحوه انجام این کار را نشان می دهد :
|
VB کد
|
<%@ Page Language="VB" %>
<%
Response.Write(System.Security.Principal.WindowsIdentity.GetCurrent(
).Name)
%>
|
|
C# کد
|
<%@ Page Language="C#" %>
<%
Response.Write(System.Security.Principal.WindowsIdentity.GetCurrent(
).Name);
%>
|
کاربری که در حال استفاده از سیستم است ، بایستی توانایی خواندن و رمزنگاری کد موجود
در بخش های فایل web.config را داشته باشد . به صورت پیش فرض سایت های ASP.Net ، با
شی امنیتی " RsaProtectedConfigurationProvider " کار می کنند . کلید RSA این شی که
برای رمز گذاری کدها به کار می رود ، دارای نام " RsaProtectedConfigurationProvider
" است .
- برای اینکه مجوز لازم برای استفاده کاربر فعلی و رمزنگاری کدها به وی داده شود ، پس
از خواندن نام آن ، مجددا ابزار Aspnet_regiis.exe را فراخوانی کرده و با ارسال
پارامترهای زیر ، مجوز لازم را برای آن تعیین می کنیم :
- اضافه کردن پارامتر pe- به قبل نام کلید RSA شی امنیتی برنامه که در این مثال " RsaProtectedConfigurationProvider"
است .
- نام کاربری کاربر جاری که در مرحله قبل تشخیص داده ایم .
کد زیر نحوه اعطای مجوز به کاربر را برای دسترسی به کدها و رمزنگاری فایل web.config
را نشان می دهد :
|
کد
|
aspnet_regiis -pa "NetFrameworkConfigurationKey" "NT AUTHORITY\NETWORK SERVICE"
|
- برای رمز گشایی فایل کد گذاری شده web.config ، ابزار Aspnet_regiis.exe را
با پارامتر pd- اجرا نمایید . Syntax این دستور شبیه دستور رمز گذاری آن است .
مثال : کد زیر ، نحوه رمزگشایی از المنت connectionStrings برنامه SampleApplication
را نشان می دهد :
|
کد
|
aspnet_regiis -pd "connectionStrings" -app "/SampleApplication"
|
راجع این مطلب
سوال یا اشکالی دارید ؟! آن را در انجمن سایت مطرح نمایید ...
>>>>> ورود به انجمن تخصصی
نطر خودتان درباره این صفحه را با ما در میان گذاشته و در صورت تمایل از Developer1
حمایت نمایید :