محصولات

خدمات

تبادل اطلاعات

ارتباط با آتون

دات نت نیوک

مقالات
  ::  معرفي فايل Web.Config
  کد: 15  تعداد بازدیدها: 5611 تعداد نظرها: 0  تعداد امتیازها:  9   (Article Rating)
معرفي فايل Web.Config
فایل web.config چیست؟

فایل web.config همانطور که از اسم آن پیداست یک فایل پیکربندی برای یکپروژه ASP.net میباشد .در هر پروژه ASP.net یک فایل web.config وجود داردکه امکان پیکربندی پروژه را فراهم میسازد . البته امکان اینکه چند فایلweb.config در یک پروژه وجود داشته باشد نیست . در انتهای این مقاله بعد ازمعرفی کلی این فایل به طرز استفاده از چند فایل در یک پروژه ASP.netمیپردازیم.فایل web.config یک فایل از نوع xml بوده و تمامی تگ های داخلاین فایل دارای معنی بوده لازم به ذکر است که این فایل نسبت به کوچک و بزرگبودن حروف حساس است .

فایل machine.config چیست؟

همانطور که از یک فایل web.config برای پیکربندی یک پروژه ASP.net استفادهمیشود از فایل machine.config برای پیکربندی پروژه های ASP.net که در یککامپیوتر خاص اجرا میشوند استفاده میشود.بدین معنی که پیکربندی های که دریک فایل machine.config قرار دارد تمام پروژه های ASP.net که در آنکامپیوتر قرار دارند را تحت تاثیر قرار میدهد . معمولا فایل machine.configرا تغییر نمیدهند و برای هر پروژه جداگانه و با استفاده از فایل هایweb.config پیکربندی را بطور جداگانه انجام میدهند.


چه چیزی در فایل web.config قرار میگیرد؟

تعداد زیادی تنطیمات مهم هستند که در یک فایل web.config قرار میگیرند . درزیر به ذکر چهار مورد از مهمترین تنظیماتی که میتواند در یک فایلweb.config میواند قرار بگیرد اکتفا میکنیم:

1-Database Connections
یکی از مهمترین چیزهائی که در یک فایل web.config قرار میگیرد اطلاعاتمربوط به connection string میباشد. دلیل قرار دادن یک connection stringدر یک فایل web.config زمانی مشخص میشود که قرار باشد که جای database خودرا تغییر دهیم . در این حالت فقط کافی است که اطلاعات مربوط به connectionstring را در فایل web.config تغییر دهیم در صورتیکه اگر اطلاعات مربوط بهconnection string را در خود application قرار دهیم برای تغییر databaseباید تعداد زیادی از فایل های موجود در پروژه را تغییر دهیم و این کارزمانگیری است و بعلاوه ویژگی قابل حمل بودن یک برنامه را فوق العاده پائینمی آورد . البته من زیاد با قرار دادن اطلاعات مهمی چون connectionstringبه صورت خام زیاد موافق نیستم . اگر از این روش استفاده میکنید من توصیهمیکنم که اطلاعات مربوط به connection string را رمز کرده و مقدار رمز شدهرا در فایل web.config قرار دهید . البته لازم به ذکر است که در رمز کردناز Hashing استفاده نکنید دلیلش رو اگه نمیدونید برید و مقاله قبلی که درمورد hashing هست رو یه مطالعه ای بکنید.در مثال زیر نحوه قرار دادناطلاعات مربوط به یک Connection string را میبینیم:

<configuration>
 
<appSettings>
 
<add key=”ConnectionString” Value=”server=home;uid=sa;password=;” />
 
appSettings>
 
configuratrion>

همانطور که دیدید قراردادن اطلاعات مربوط به connection string در یک فایلweb.config بسیار آسان است connection string با استفاده از key که دراینجا ConnectionString میباشد مورد ارجاء قرار میگیرد و value مشخص کنندهمقدار این key میباشد. دستیابی به این key ها در یک Application بسیار آساناست .

برای دستیابی به key در یک application به شکل زیر عمل میکنیم:

Using System.Configuration;
 
String connection_string = ( string ) ConfigurationSettings.Appsettings[“ConnectionString”];


2-Session States

Session در یک پروژه ASP.net بسیار مهم است . همانطور که میدانید پروتکلHTTP یک پروتکل StateLess میباشد به این معنی که بصورت اتوماتیک امکانتشخیص اینکه رشته ای از تقاضاها به سمت یک سایت همگی از سوی یک کامپیوترصورت میگیرد یا اینکه یک مرورگر در حال مشاهده یک سایت هست یا نه وجودندارد . برای رفع این دو مشکل فوق و در اصطلاح برای State نگه داشتن یکسایت از Session States استفاده میشود .ASP.net برای ذخیره کردن Session ازروش های مختلفی استفاده میکند . به طور پیش فرض ASP.net ، session ها رادر همان پردازش مربوط به سایت ذخیره سازی میکند .همچنین شما برای ذخیرهسازی session ها علاوه بر روش پیش فرض میتوانید از دو روش زیر استفاده کنید. ناگفته نماند که مشخص کردن نحوه ذخیره سازی یک Session در فایلWeb.config مشخص میشود.روش های ذخیره سازی را در زیر می بینید:


1-Session State Server

استفاده از این روش برای ذخیره سازی Session ها دارای دو سود مناسب است .اول اینکه به این دلیل که پروسس های مربوط به Session و Application یکینیستند چنانچه Application به قول معروف Crash کند هیچ آسیبی متوجه Sessionها نخواهد بود چون دو پردازش مجزا هستند . دومین سود این است که امکاناشتراک در میان یک کامپیوتر چند پردازنده میسر میباشد. برای مشخص کردناینکه نحوه ذخیره سازی Session به صورت State Server باشد لازم است در فایلweb.config تغییرات زیر را اعمال کنیم:


<sessionState mode=”StateServer” stateConnectionString="tcpip=127.0.0.1:55455" sqlConnectionString="data source=127.0.0.1;user id=sa;password='' cookieless="false" timeout="20" />


در زیر توضیحی مختصر راجع به پارامترهای بالا را ذکر میکنم:

Mode : درواقع حالت ذخیره سازی است که میتواند یکی از دو مقدار StateServerیا SqlServer باشد در اینجا چون میخواهیم از روش StateServer استفاده کنیممقدار Mode را مساوی StateServer قرار میدهیم.

stateConnectionString :connection string که از آن برای مشخص کردن موقعیت State Service استفاده میشود .

sqlConnectionString :connection string مربوط به SqlServer میباشد کهالبته برای State Server لازم نیست ولی برای حالت SqlServer لازم است چوندر این نوع از ذخیره سازی از SqlServer استفاده میشود.

Cookieless : در صورت تمایل برای نگه داشتن مقدار Session در سمت Clientبعد از قطع اتصال بین سایت و Client میتوان مقدار این گزینه را False کردولی من که این کار را مفید نمیبینم پس با True کردن این مقدار اجازه ذخیرهشدن اطلاعات مربوط بهSession را ندهید .

Timeout: در واقع این item طول عمر یک Session را بر حسب دقیقه بیان میکند .

البته این تگ item های دیگری هم دارد که من توضیح نمیدم ولی حتما قبل ازاستفاده از Session ها یه نگاهی به این گزینه ها بکنید به طور مثال یکی ازگزینه هائی که نگفتم در مورد رمز کردن اطلاعات داخل Sessionو نگه داشتن ایناطلاعات در کامپیوتر Client میباشد.


2-SqlServer

انتخاب دوم برای ذخیره سازی Session ها SqlServer 2000 میباشد . برایذخیرهسازی اطلاعات مربوط به یک Session با استفاده از SqlServer مراحل زیررا دنبال کنید:


1- با استفاده از ابزا Query Analyser اسکریپت InstallSqlSate.sql را اجراکرده تا DataBase مورد نیاز برای ذخیره سازی Session در SqlServer ایجادشود . لازم به ذکر است که فایل InstallSqlState.sqlدر مسیر زیر است:

systemroot\Microsoft.NET\Framework\versionNumber


2- در مرحله دوم لازم است تا تنظیمات لازم را به مانند آنچه در StateServer انجام دادیم ، انجام دهیم .

برای این کار لازم است تا تغییرات زیر را در فایل web.config انجام دهیم:


<sessionState mode=”SqlServer” sqlConnectionString=” data source=SERVERNAME;user id=sa;password=;” />


البته اطلاعات دیگر را به مانند آنچه در State Server دیدید قرار دهید.

SqlServer امکان به اشتراک گذاشتن اطلاعات مربوط به یک Session را بین چندسایت یا حتی چند Server ممکن میسازد ولی تنها ایراد این روش در این است کهSqlServer نسبت به Session State کندتر است و از این لحاظ بهتر است که ازStateServer استفاده کنیم .


3-Error Handling

Error handling یکی از قسمت های خیلی مهم در هر پروژه تحت وب میباشد .امکان رخ دادن هر نوع Error وجود دارد بنابراین بایستی راهی را برای مقابلهبا این error ها در نظر بگیریم . ASP.net با استفاده از فایل Web.configبه ما این امکان را میدهد که Error ها را کنترل کنیم .

بطور مثال برای کنترل error 404 به شکل زیر عمل میکنیم :

<customErrors mode=”On”>
 
<error statuscode=”404” redirect=”notfound.aspx” />
 
customErrors>

چند خط کد فوق برای این است که در هنگام رخدادن error 404 که مربوط به یافتنشدن صفحه است بجای نمایش این error به صفحه notfound.asp برود . چنانچهMode=””Off باشد در این صورت در هنگامی که یک Error رخ دهد همان error برایکاربران نهائی نمایش داده میشود .


4-security(authentication)

یکی از جنبه های مهم هر برنامه تحت وب امنیت آن است . ASP.net امکاناتمناسبی را در زمینه امنیت ایجاد کرده است که میتوانیم بر حسب نیاز از اینامکانات استفاده کنیم .یکی از امکاناتی که .net در زمینه امنیت ارائه دادهاست اعتبارسنجی کاربران است که از سه طریق این عمل ممکن میشود:


1-Windows Authentcation

Windows authentication به شما این امکان را میدهد تا از اکانت های کاربراندر ویندوز استفاده کنید . این سرویس از IIS استفاده میکند . و بعد ازاعتبارسنجی کاربران اطلاعات کاربری تائید شده را برای کد برنامه شما ارساالمی کند . اگر شما مایل به این هستید که بدانید کدام کاربر ویندوز ازبرنامه های ASP.net استفاده میکند با استفاده از Property زیر میتوانید ایناطلاعات را بدست آورید :

User.Identify.Name;

این Property کلمه کاربری(username) کاربر فعلی را در خود دارد .


2-Passport Authentication

این نوع از اعتبارسنجی کاربران برای اعتبارسنجی از سرویس Passport محصولشرکت Microsoft استفاده میکند . برای استفاده از این سرویس میبایستی اینسرویس را خریداری کنید .


3-Forms Authentication

این نوع از اعتبارسنجی کاربران برای اعتبارسنجی از Form های Login که دربیشتر سایت ها میبینیم استفاده میکنند . این نوع از اعتبارسنجی به واقعبیشترین استفاده را در میان سه نوع اعتبار سنجی دارد .بارها شده در سایتهائی رفته و اجازه مشاهده یک سری از صفحات فقط در صورت Login کردن به شماداده میشود در واقع در چنین سایت هائی از Forms Authentication استفادهمیشود . این مبحث بسیار گسترده است و نیاز به یک آموزش کامل در مورد اعتبارسنجی کاربران از طریق Forms Authentication وجود دارد ان شاء الله درآینده نزدیک در این مورد بیشتر صحبت خواهیم کرد در انتهای این قسمت قطعه کدلازم برای اعتبار سنجی کاربران به روش Forms authentication را میاوریم:

<authentication mode=”Forms”>
 
<form loginUrl=”login.aspx” timeout=”20” / >
 
authentication>
 
<authorization>
 
<deny users=”?” />
 
authorization>

استفاده از چند فایل web.config در یک برنامه ASP.net:

امکان استفاده از چند فایل Web.config در یک برنامه ASP.net میسر میباشد .در واقع چنانچه در داخل یک شاخه از یک برنامه تحت وب یا به عبارت ساده تریک سایت یک فایل web.config قرار دهیم شرایطی که در این فایل مشخص میشود برمشخصات و شرایطی که در فایل web.config شاخه اصلی سایت است ارجعیت دارد وچنانچه پیکربندی در فایل web.config شاخه اصلی وجود داشته باشد که درآنفایل دوم نباشد این پیکربندی برای آن زیر شاخه نیز صادق است .در نتها لازمبه ذکر است که محدوده دید یک فایل web.config در همان شاخه و تمام زیر شاجههائی است که در آن شاخه که خود فایل قرار دارد میباشد .بنابراین شرایطی کهدر فایل web.config که در شاخه اصلی یک سایت قرار دارد برای تمام فایل ها وزیر شاخه های آن صادق است .


 
   امتياز بندي



  نظرات

ارسال نظر:
فقط کاربران عضو می توانند توضیحات در پست قرار دهند.
 
تمامی حقوق مادی و معنوی این اثر متعلق به جام زندگی می باشد  |  حريم كاربران    شرایط استفاده