الموضـوعات :
 دروس عامة
 التعامل مع قواعد البيانات
 الحماية
 لغة VB.NET
 الكتب
 البرامج


العنوان الدرس الكاتب

أضف درس أو تعليق

عدد الزوار : 150467
 ملف الإعدادات web.config

ملف الإعدادت web.config هو أهم ملف في ملفات أي مشروع ASP.NET لأنه يحتوي على جميع إعدادات المشروع مثل تحديد اللغة وجملة الربط بقواعد البيانات والمجلدات التي تريد حمايتها .... الخ  وبهذا يمكنك التعديل في خصائص المشروع ككل من خلال التعديل في هذا الملف.
وهذا الملف هو عبارة عن ملف نصي عادي على شكل XML يمكن التعديل عليه بإستخدام أي محرر نصوص مثل notepad .

يمكن أن يحتوي كل مجلد من مجلدات المشروع على ملف web.config ولكن ليس ضروريا لأن ملف web.config يؤثر على المجلدات الفرعية للمجلد الذي يوجد فيه . فمثلا لو كان هناك ملف web.config في c:\inetpub\wwwroot فإن الإعدادت تطبق على جميع المجلدات الفرعية لهذا المجلد مالم يوجد ملف web.config لمجلد داخلي يحتوي على إعدادت مختلفه.

وفي هذا المقال سوف نتكلم عن أهم الوسوم في ملف web.config  لأنه ليس من الضروري كتابة جميع وسوم هذا الملف في كل مشروع وإنما المهم هو كتابة الوسوم التي تحتاجها فقط ولكن قبل أن نتكلم عن الوسوم بالتفصيل الق نظرة على ملف web.config التالي الذي يحتوي الكثير من هذة الوسوم حتى تعرف كيف شكل هذا الملف وكيفية تنسيق الوسوم فيه :

<?xml version="1.0" encoding="windows-1256" ?>

<configuration>
<appSettings>
 <add key ="strConn" value="PROVIDER=Microsoft.Jet.OLEDB.4.0;DATA SOURCE=C:\daleel.mdb" />
</appSettings>

<location path="admin">
<system.web>
<authorization>
<deny users="?" />
</authorization>
</system.web>
</location>

<system.web>
<compilation defaultLanguage="vb" debug="true" />
<customErrors mode="Off"/>

<authentication mode="Forms">
<forms name=".aspxformauth" loginUrl="admin/login.aspx" protection="All" path="/" timeout="15" />
</authentication>

<authorization>
<allow users="*"/>
</authorization>

<globalization fileEncoding="windows-1256" requestEncoding="windows-1256" responseEncoding="windows-1256" />

</system.web>

</configuration>

 

وهنا أهم الوسوم التي قد تحتاجها كثيرا :

Configuration

جميع وسوم ملف web.config تكتب داخل هذا الوسم .

<Configuration>
</Configuration>

appSettings

هذا الوسم يمثل مكان خاص لتخزين أي قيم خاصة ترغب في إستخدامها في مشروعك وهو يحتوي على خاصيتين هما المفتاح key والقيمة value ويمكن إضافة العديد من القيم بإضافة وسم add لكل قيمة .

فعلى سبيل المثال الكود التالي يقوم بحفظ جملة الربط بقاعدة البيانات Connection String :

<appSettings>
<add key ="strConn" value="PROVIDER=Microsoft.Jet.OLEDB.4.0;DATA SOURCE=C:\daleel.mdb" />
</appSettings>

ولإستعمال قيمة جملة الربط هذة في أي ملف aspx ماعليك الا كتابة التعريف التالي :

Dim strConn As String = ConfigurationSettings.AppSettings("strConn")

وبهذة الطريقة يسهل عليك مثلا تغيير إسم قاعدة البيانات لأن جميع الصفحات ترتبط بجملة ربط واحدة.

system.web

هذا الوسم أيضا تكتب داخلة كثير من الوسوم الأخرى ولكن ليس جميع الوسوم كما في configuration وكذلك ممكن أن يتكرر خلال ملف web.config واحد  حسب عدد المجلدات الفرعية التي تحتاج الى كتابة إعدادت خاصة بها.

location

يمكنك هذا الوسم من إضافة إعدادت معينة لملف أو مجلد معين دون أن تأثر هذة الإعدادات على بقية الملفات أو المجلدات وهو يمكن إذن أن يحتوي على أي من الوسوم الأخرى التي تستخدم لضبط إعدادت لملف أو مجلد معين.

وهذا الكود يستخدم مثلا لحماية المجلد الفرعي admin بحيث لايسمح بدخول أي زائر لأي ملف من ملفات هذا المجلد وسوف يتم شرح الحماية بالتفصيل في درس قادم إنشاء الله :

<location path="admin">
<system.web>
<authorization>
<deny users="?" />
</authorization>
</system.web>
</location>

Compilation

في هذا الوسم يتم إضافة جميع خصائص ترجمة وتنفيذ الصفحات. وهو يحتوي على عدد من الخصائص مثل defaultLanguage لتحديد نوع اللغة المستخدمة في الصفحات وكذلك 3 وسوم داخلية هي (compilers) لتحديد مترجم الصفحات و (assemblies) لإضافة ملفات Assemblies معينة و (namespaces) لإضافة مكتبة namespaces معينة .

<compilation defaultLanguage="VB" debug="true">
<compilers>
<compiler language="VB;VBScript" extension=".cls" type="Microsoft.VB. VBCodeProvider,System" />
<compiler language="C#;Csharp" extension=".cs" type="Microsoft.CSharp. CSharpCodeProvider,System" />
</compilers>
<assemblies>
<add assembly="ADODB" />
</assemblies>
<namespaces>
<add namespace="System.Web" />
<add namespace="System.Web.UI" />
</namespaces>
</compilation>

CustomErrors

هذا الوسم يمكنك من تحديد ظهور رسالة الخطأ أو تحويلة الى أي صفحة أخرى في حالة حدوث أي خطأ في الصفحة ويحتوي هذا الوسم على خاصيتين هما defaultRedirect لتحديد الصفحة التي يتم تحويله لها و mode وتحتوي على أحدى ثلاث قيم هي On وتعني تشغيل هذة الخاصية وتتبع الصفحة المحددة وOFF وتعني إظهار رسالة الخطأ الحقيقية للجميع  و RemoteOnly تعني أن يظهر الخطأ الحقيقي فقط لمن يطلب الصفحة من نفس السيرفر أما الذي يطلبها من جهاز آخر فإنه يتم تحويلة الى الصفحة المحددة في defaultRedirect . وكذلك تحتوي على وسم داخلي هو error لتحويلة الى صفحة معينة في حالة خطأ معين مثل أن يكون رمز الخطأ 404 أي عدم وجود الصفحة :

<customErrors defaultRedirect="errorpage.aspx" mode="RemoteOnly">
<error statusCode="404" redirect="NotFound.htm"/>
</customErrors>

 Authentication

في هذا الوسم يتم تحديد خصائص الحماية وصفحة الدخول للأشخاص المسموح لهم بالدخول لصفحات الموقع وتحتوي على خاصية واحدة هي mode ويمكن أن تأخذ أحد أربع قيم وهي None أي بدون حماية و Forms أي نموذج لإدخال الرقم السري و Windows لإستخدام نفس المستخدمين لنظام التشغيل و Passport وهي خدمة من Microsoft يمكن الإشتراك بها وسيأتي شرح هذة الخصائص بالتفصيل في درس الحماية إنشاء الله :

<authentication mode="Forms">
<forms name=".aspxformauth" loginUrl="admin/login.aspx" protection="All" path="/" timeout="15" />
</authentication>

Authorization

وهذا الوسم يمكننا من تحديد الأشخاص المسموح لهم أو الممنوعين من دخول صفحات الموقع ويحتوي على وسمين داخليين هما allow و deny وكل منهم يحتوي على ثلاث خصائص هي users لتحديد المستخدمين المسموح لهم أو الممنوعين ويتم تحديدهم بذكر أسمائهم أو كتابة * وتعني جميع المستخدمين أو ؟ وتعني الزوار ... وخاصية roles لتحديد نوع المستخدمين المسموح لهم أيضا أو الممنوعين ... وخاصية verb وتحدد المستخدمين حسب نوع طلب الصفحة وتحتوي على أربع قيم هي GET و HEAD و POST و DEBUG .

<authorization>
<allow roles="Admins" />
<deny users="?" />
</authorization>

Globalization

وفي هذا الوسم يتم تحديد الترميز اللغوي ويحتوي على ثلاث خصائص هي fileEncoding وتعني ترميز الصفحات و requestEncoding لترميز الطلب و responseEncoding لترميز الكتابة .

<globalization fileEncoding="windows-1256" requestEncoding="windows-1256" responseEncoding="windows-1256" />

SessionState

في هذا الوسم يتم تحديد خصائص الجلسة Session وأين يتم حفظها وتحتوي على عدد من الخصائص مثل mode ويمكن أن تحوي أي من هذة الأربع قيم وهي Off وتعني عدم حفظها و InProc وتعني حفظة في الجهاز المحلي و StateServer أي حفظه في السيرفر و SqlServer تعني حفظة في قاعدة بيانات SqlServer . وتحتوي خاصية cookieless أي حفظها في كويكز أو لا وكذلك خاصية timeout وتعني مدة حفظها وتأخذ قيمة إفتراضية تساوي 20 دقيقة في حال عدم تحديدها.

<sessionState mode="Inproc" cookieless="true" timeout="20">

وهناك العديد من الوسوم الأخرى ولكن حفاظا على فائدة الدرس ركزت على مارأيته مهما.

وهذة بعض المراجع لزيادة المعلومات

http://www.dev4arabs.com/ar/asp/articles.asp?s=2&id=46 عربي
http://www.aspalliance.com/das/web.config.aspx إنجليزي
http://www.aspnextgen.com/tutorials.aspx?tutorialid=60 إنجليزي

تمت إضافة هذا الدرس بواسطة : المميز بتاريخ : 11/6/2002 5:28:46 AM
عدد زوار هذا الدرس : 6790 وهناك 60 رشحوا هذا الدرس بمعدل ترشيح 3.77 من 5
رشح هذا الدرس :