يتم تحديد سلوك تطبيق ASP.NET من خلال إعدادات مختلفة في ملفي التكوين التاليين:
Machine.config
web.config
يحتوي ملف Machine.config على القيم الافتراضية والخاصة بالجهاز لجميع الإعدادات المدعومة. تم إعداد الجهاز بواسطة مسؤول النظام، ولا يمكن للتطبيقات عمومًا الوصول إلى هذا الملف.
ومع ذلك، يمكن لأحد التطبيقات تجاوز القيمة الافتراضية عن طريق إنشاء ملف web.config في المجلد الجذر الخاص به. يعد ملف web.config مجموعة فرعية من ملف Machine.config.
إذا كان التطبيق يحتوي على أدلة فرعية، فيمكنه تحديد ملف web.config لكل مجلد. يتم تحديد نطاق كل ملف تعريف بطريقة هرمية من أعلى إلى أسفل.
يمكن لأي ملف web.config توسيع أي إعدادات محددة أعلاه أو تقييدها أو تجاوزها محليًا.
يقوم Visual Studio بإنشاء ملف web.config افتراضي لكل مشروع. يمكن تنفيذ التطبيق بدون ملف web.config، ومع ذلك، لا يمكننا تصحيح أخطاء التطبيق بدون ملف web.config.
توضح الصورة أدناه مثالاً نموذجيًا لمستكشف الحلول المستخدم في البرنامج التعليمي لخدمات الويب:
يوجد في هذا التطبيق ملفان web.config يتوافقان مع خدمة الويب وموقع الويب الذي يستدعي خدمة الويب.
يعمل عنصر التكوين في ملف web.config بمثابة العقدة الجذرية. تنقسم المعلومات الموجودة في هذا العنصر إلى منطقتين رئيسيتين: منطقة إعلان معالج قسم التكوين، ومنطقة إعدادات قسم التكوين.
يعرض مقتطف التعليمات البرمجية التالي البنية الأساسية لملف التكوين:
<configuration> <!-- منطقة تعريف معالج قسم التكوين --> <configSections> <section name="section1" type="section1Handler" /> <section name="section2" type="section2Handler" /> </ configSections> <!-- منطقة إعدادات قسم التكوين --> <section1> <s1Setting1 attribute1="attr1" /> </section1> <section2> <s2Setting1 attribute1="attr1" /> </section2> <system.web> <وضع المصادقة = "Windows" /> </system.web> </configuration>
يتم تضمين إعلانات معالج قسم التكوين في العلامات. يحدد كل معالج تكوين اسم قسم التكوين وهو موجود في ملف يوفر بعض بيانات التكوين. لديه بناء الجملة الأساسي التالي:
<configSections> <section /> <sectionGroup /> <remove /> <clear/> </configSections>
لديها العناصر التالية:
واضح - كافة المراجع إلى الأقسام ومجموعات الأقسام الموروثة.
إزالة - يزيل القسم الموروث ومجموعة المقاطع المرجعية.
القسم - يحدد الارتباط بين معالجات قسم التكوين وعناصر التكوين.
مجموعة الأقسام - تحدد الارتباط بين معالج قسم التكوين وقسم التكوين.
تسمح إعدادات التطبيق بتخزين أزواج الاسم والقيمة للتطبيقات ذات الوصول للقراءة فقط. على سبيل المثال، يمكنك تحديد إعداد تطبيق مخصص كما يلي:
<configuration> <appSettings> <add key="اسم التطبيق" value="MyApplication" /> </appSettings> </configuration>
على سبيل المثال، يمكنك أيضًا تخزين رقم ISBN الخاص بالكتاب وزوج بيانات الاسم:
<configuration> <appSettings> <add key="appISBN" value="0-273-68726-3" /> <add key="appBook" value="Corporate Finance" /> </appSettings> </configuration>
تعرض سلسلة الاتصال سلسلة اتصال قاعدة البيانات التي يمكن استخدامها لموقع الويب. على سبيل المثال:
<connectionStrings> <add name = "ASPDotNetStepByStepConnectionString" ConnectionString = "Provider=Microsoft.Jet.OLEDB.4.0؛ مصدر البيانات = E:\projectsdatacaching / datacachingApp_DataASPDotNetStepByStep.mdb" ProviderName = "System.Data. OleDb" /> <add name="booksConnectionString" ConnectionString = "Provider=Microsoft.Jet.OLEDB.4.0؛ مصدر البيانات = C: databindingApp_Databooks.mdb" ProviderName = "System.Data.OleDb" /> </connectionStrings>
يحدد عنصر system.web العنصر الجذر لقسم تكوين ASP.NET ويحتوي على عناصر التكوين التي تقوم بتكوين تطبيق ويب ASP.NET وتتحكم في تشغيل التطبيق.
فهو يتحكم في معظم عناصر التكوين الأكثر شيوعًا التي تحتاج إلى تعديل. بناء الجملة الأساسي لهذا العنصر هو كما يلي:
<system.web> <anonymousIdentification> <authentication> <authorization> <browserCaps> <caching> <clientTarget> <compilation> <customErrors> <deployment> <deviceFilters> <globalization> <healthMonitoring> <hostingEnvironment> <httpCookies> <httpHandlers> <httpModules> <httpRuntime> <identity> <machineKey> <العضوية> <mobileControls> <pages> <processModel> <profile> <roleManager> <securityPolicy> <sessionPageState> <sessionState> <siteMap> <trace> <trust> <urlMappings> <webControls> <webParts> <webServices> <xhtmlConformance > </system.web>
يقدم الجدول التالي وصفًا موجزًا للعناصر الفرعية لبعض عناصر system.web شائعة الاستخدام:
يُستخدم هذا لتحديد المستخدمين غير المصادقين عندما يكون تأكيد هوية المستخدم مطلوبًا.
وهو مدعوم بتخويل التكوين. بناء الجملة الأساسي هو:
<authorization> <allow .../> <deny .../> </authorization>
يقوم بتكوين إعدادات ذاكرة التخزين المؤقت. بناء الجملة الأساسي هو:
<caching> <cache>...</cache> <outputCache>...</outputCache> <outputCacheSettings>...</outputCacheSettings> <sqlCacheDependency>...</sqlCacheDependency> </caching>
يحدد رسالة خطأ مخصصة. بناء الجملة الأساسي هو:
<customErrors defaultRedirect="url" mode="On|Off|RemoteOnly"> <error./> </customErrors>
وهو يحدد إعدادات التكوين المستخدمة للنشر. بناء الجملة الأساسي هو كما يلي:
<نشر التجزئة = "صحيح|خطأ" />
فهو يحدد إعدادات التكوين لبيئة الاستضافة. بناء الجملة الأساسي هو كما يلي:
<hostingEnvironment idleTimeout="HH:MM:SS" ShadowCopyBinAssemblies="true|false" ShutdownTimeout="number" urlMetadataSlidingExpiration="HH:MM:SS" />
يتم استخدامه لتكوين آلية المصادقة للتطبيق. بناء الجملة الأساسي هو كما يلي:
<هوية انتحال الشخصية = "true|false" userName = "domainusername" كلمة المرور = "<كلمة المرور الآمنة>"/>
يتم استخدامه لتكوين المفتاح المستخدم لملف تعريف ارتباط مصادقة النماذج لتشفير البيانات وفك تشفيرها.
كما يسمح أيضًا بتكوين مفاتيح المصادقة لإجراء عمليات التحقق من مصادقة الرسائل عند عرض بيانات الحالة وتذاكر مصادقة النماذج. بناء الجملة الأساسي هو:
<suckedkey justealkey = " نشوئها = "Auto " [تلقائي | DES | 3DES | الخدمات المعمارية والهندسية |.alg:algorithm_name] />
يتم استخدامه لتكوين الإدارة ومصادقة معلمات المستخدم. بناء الجملة الأساسي هو:
<العضوية الافتراضيةProvider = "provider name" userIsOnlineTimeWindow = "عدد الدقائق" hashAlgorithmType = "SHA1"> <providers>...</providers> </membership>
ويوفر تكوينًا محددًا لصفحات الويب. بناء الجملة الأساسي هو:
<pages asyncTimeout = "number" autoEventWireup = "[True|False]" buffer = "[True|False]" clientIDMode = "[AutoID|Predictable|Static]" compilationMode = "[Always|Auto|Never]" controlRenderingCompatibilityVersion = " [3.5|4.0]" EnableEventValidation="[True|False]" EnableSessionState = "[True|False|ReadOnly]" EnableViewState = "[True|False]" EnableViewStateMac = "[True|False]" keepScrollPositionOnPostBack = "[True|False]" masterPageFile = "مسار الملف" maxPageStateFieldLength = "number" pageBaseType ="اسم النوع، التجميع" pageParserFilterType = "سلسلة" SmartNavigation = "[True|False]" styleSheetTheme = "string" theme = "string" userControlBaseType = "typename" validateRequest = "[True|False]" viewStateEncryptionMode = "[Always|Auto|Never]" > <controls>.. .</controls> <namespaces>...</namespaces> <tagMapping>...</tagMapping> <ignoreDeviceFilters>...</ignoreDeviceFilters> </pages>
يتم استخدامه لتكوين معلمات ملف تعريف المستخدم. بناء الجملة الأساسي هو:
<الملف الشخصي ممكّن = "true|false" يرث = "مرجع النوع المؤهل بالكامل" autoSaveEnabled = "true|false" defaultProvider = "provider name"> <properties>...</properties> <providers>...</providers > </الملف الشخصي>
تكوين معلومات الإعدادات لأدوار المستخدم. بناء الجملة الأساسي هو:
<roleManager CacheRolesInCookie = "true|false" cookieName = "name" cookiePath = "/" cookieProtection = "All|Encryption|Validation|None" cookieRequireSSL="true|false " cookieSlidingExpiration="true|false " cookieTimeout = "عدد الدقائق" " createPersistentCookie = "true|false" defaultProvider = "اسم الموفر" domain = "مجال ملف تعريف الارتباط"> ممكّن = "true|false" maxCachedResults="الحد الأقصى لعدد أسماء الأدوار المخزنة مؤقتًا" <providers>...</providers> </roleManager>
يستخدم لتكوين سياسات الأمان. بناء الجملة الأساسي هو:
<securityPolicy> <trustLevel /> </securityPolicy>
وهو يحدد التعيينات لإخفاء عناوين URL الأصلية وتوفير عناوين URL أكثر سهولة في الاستخدام. بناء الجملة الأساسي هو:
<urlMappings تمكين = "true|false"> <add.../> <clear /> <remove.../> </urlMappings>
ويوفر اسم الموقع المشترك للبرامج النصية للعميل. بناء الجملة الأساسي هو:
<webControlsclientScriptsLocation="String" />
يستخدم لتكوين خدمات الويب.