آموزشگاه برنامه نویسی تحلیل داده
آموزشگاه برنامه نویسی تحلیل داده

آموزش پیکربندی ASP.NET Configuration

دوره های مرتبط با این مقاله

پیکربندی (configuration) – ASP.NET

عملکرد ASP.NET application تا حد زیادی تحت تاثیر تنظیمات مختلفی است که در فایل های پیکربندی (configuration file) لحاظ می شود. این فایل ها عبارتند از:

  • machine.config
  • web.config

فایل machine.config دربردانده ی مقدار پیش فرض و ویژه ی ماشین (machine-specific) برای کلیه ی تنظیمات (setting) پشتیبانی شده می باشد. تنظیمات سیستم (system settings) تنها توسط مدیر سیستم (system administrator) کنترل و اداره می شود. بطور کلی application ها اجازه ی دسترسی به فایل مزبور را ندارند.

با این حال می توان با ایجاد فایل web.config و جای گذاری آن در پوشه ی اصلی (root folder) application، به آن اجازه ی بازنویسی (override) مقادیر پیش فرض را داد. فایل نام برده زیر مجموعه ی فایل machine.config می باشد.

چنانچه application مورد نظر دارای child directory (زیر پوشه) است، در آن صورت می تواند یک فایل web.config به ازای هر پوشه ایجاد کند. محدوده ی (scope) تک تک فایل های پیکربندی به صورت سلسله مراتبی از بالا به پایین تعیین می شود.

کلیه ی فایل های web.config می توانند به صورت محلی تنظیمات تعریف شده در سطح بالاتر از خود را بسط داده (extend)، محدود ساخته و یا بازنویسی (override) کند.

Visual Studio به صورت پیش فرض یک فایل web.config ویژه ی کلیه ی پروژه های موجود ایجاد می کند. اگرچه یک برنامه (application) می تواند بدون نیاز به فایل web.config اجرا شود، اما امکان اشکال زدایی آن بدون وجود فایل ذکر شده وجود ندارد.

تصویر زیر نمونه ای از application ایجاد شده در مبحث web service را نمایش می دهد:

Asp.Net

در application فوق، دو فایل web.config مشاهده می کنید که هر یک ویژه ی یک پروژه ایجاد شده است. یکی از آن ها web service است و دیگری وبگاهی (web site) که آن web service را فرا می خواند.

المان configuration در فایل web.config گره ی اصلی (root node) می باشد. اطلاعات داخل این المان به دو area (بخش) تقسیم شده:

  • configuration section-handler declaration area و configuration section settings area.

تکه کد زیر نحوه ی کلی نگارش (basic syntax) فایل پیکربندی (configuration file) را نمایش می دهد:

< !-- Configuration section-handler declaration area. -- >
< configSections >
  < section name="section1" type="section1Handler" / >
  < section name="section2" type="section2Handler" / >
< /configSections >
< !-- Configuration section settings area. -- >
< section1 >
  < s1Setting1 attribute1="attr1" / >
< /section1 >
< section2 >
  < s2Setting1 attribute1="attr1" / >
< /section2 >
< system.web >
  < authentication mode="Windows" / >
< /system.web >
< /configuration >


                        

Configuration Section Handler declaration

Configuration Section Handler ها داخل تگ های قرار دارند. هر configuration handler اسم یک بخش (section) configurationرا داخل فایل مشخص می کند، که داده یا اطلاعاتی درباره ی پیکربندی (configuration data) ارائه می دهد.

نحوه ی کلی نگارش (syntax) آن به ترتیب زیر می باشد:

  < configSections >
    < section / >
    < sectionGroup / >
    < remove / >
    < clear/ >
  < /configSections >
                        

تگ < configSections > دارای المان های زیر می باشد:

  • clear کلیه ی ارجاعات به section و section group های به ارث برده را حذف می کند.
  • Remove - ارجاع به section و section group به ارث برده را حذف می کند.
  • Section – یک رابطه یا پیوستگی بین configuration section و المان configuration ایجاد (تعریف) می کند.
  • Section group – یک ارتباط بین configuration section handler و configuration section ایجاد می کند.

Application Settings

Application Settings امکان ذخیره سازی جفت های کلید-مقدار (key-value pair) مربوط به کل application برای دسترسی در سطح read-only را فراهم می آورد.

مثال:
< configuration >
    < appSettings >
      < add key="Application Name" value="MyApplication" / >
    < /appSettings >
  < /configuration >
                        

برای مثال، می توان اسم کتاب و شماره ی ISBN آن را ذخیره کرد:

< configuration >
  < appSettings >
    < add key="appISBN" value="0-273-68726-3" / >
    < add key="appBook" value="Corporate Finance" / >
  < /appSettings >
< /configuration >
                        

Connection Strings

Connection strings نشان می دهد کدام database connection stringها برای وبگاه (website) در دسترس می باشد.

< connectionStrings >
  < add name="ASPDotNetStepByStepConnectionString"
     connectionString="Provider=Microsoft.Jet.OLEDB.4.0;
      Data Source=E:\\projects\datacaching\ /
      datacaching\App_Data\ASPDotNetStepByStep.mdb"
     providerName="System.Data.OleDb" / >
  < add name="booksConnectionString"
     connectionString="Provider=Microsoft.Jet.OLEDB.4.0;
      Data Source=C:\ \databinding\App_Data\books.mdb"
     providerName="System.Data.OleDb" / >
< /connectionStrings > 
                        

المان System.Web

المان system.web عنصر ریشه ی (root element) بخش پیکربندی (configuration section) ASP.NET را مشخص کرده و همچنین دربردانده ی configuration element هایی است که ASP.NET Web application ها را تنظیم / پیکربندی کرده و رفتار (نحوه ی عملکرد) application را مدیریت می کند.

المان system.web دربردانده ی بیشتر configuration element هایی می باشد که باید در برنامه های مختلف تطبیق داده شوند (adapt).

< system.web >
< anonymousIdentification >
< authentication >
< authorization >
< browserCaps >
< caching >
< clientTarget >
< compilation >
< customErrors >
< deployment >
< deviceFilters >
< globalization >
< healthMonitoring >
< hostingEnvironment >
< httpCookies >
< httpHandlers >
< httpModules >
< httpRuntime >
< identity >
< machineKey >
< membership >
< mobileControls >
< pages >
< processModel >
< profile >
< roleManager >
< securityPolicy >
< sessionPageState >
< sessionState >
< siteMap >
< trace >
< trust >
< urlMappings >
< webControls >
< webParts >
< webServices >
< xhtmlConformance >
< /system.web >
                        

در این بخش فهرستی از sub element های متداول المان system.web به همراه توصیفی مختصر درباره ی هر یک از آن ها مشاهده می کنیم:

AnonymousIdentification

از این sub element به منظور شناسایی کاربرهایی که احراز هویت و اعتبار سنجی نشده اند، به هنگام نیاز به اعطاء مجوز (authorization) استفاده می شود.

Authentication

قابلیت authentication (اعتبار سنجی) را پیکربندی می کند (تنظیمات آن را انجام می دهد). نحوه ی کلی نگارش (syntax) آن به شرح زیر می باشد:

< authentication mode="[Windows|Forms|Passport|None]" >
  < forms >...< /forms >
  < passport/ >
< /authentication >
                        

Authorization

امکان authorization (اعطا مجوز) را تنظیم و پیکربندی می کند.

< authorization >
   < allow .../ >
   < deny .../ >
< /authorization >
                        

Caching

تنظیمات مربوط به cache (حافظه ی نهان و ذخیره سازی موقت داده ها) را پیکربندی می کند.

< caching >
  < cache >...< /cache >
  < outputCache >...< /outputCache >
  < outputCacheSettings >...< /outputCacheSettings >
  < sqlCacheDependency >...< /sqlCacheDependency >
< /caching >
                        

CustomErrors

پیام های مربوط به custom error ها را تعریف می کند.

< customErrors defaultRedirect="url" mode="On|Off|RemoteOnly" >
  < error. .="" .=""/ >
< /customErrors >
                        

Deployment

تنظیمات پیکربندی ((configuration setting که برای آماده سازی و مستقر کردن (deployment) بکار می رود را تعریف می کند. Syntax:

< deployment retail="true|false" / >
                        

HostingEnvironment

تنظیمات پیکربندی مربوط به hosting environment را انجام می دهد. نحوه ی کلی نگارش این sub element به ترتیب زیر می باشد:

< hostingEnvironment idleTimeout="HH:MM:SS" shadowCopyBinAssemblies="true|false"
shutdownTimeout="number" urlMetadataSlidingExpiration="HH:MM:SS" / >
                        

Identity

هویت یا identity برنامه (application) را تنظیم (پیکربندی) می کند. Syntax آن به شرح زیر می باشد:

< identity impersonate="true|false" userName="domain\username"
password="< secure password>"/ >
                        

MachineKey

کلیدهایی که برای رمز گذاری (encrypt) و رمز گشایی (decrypt) داده های authentication cookie، Form ها بکار می رود را پیکربندی می کند / کلیدهایی که برای احراز هویت اطلاعات فرم های ذخیره شده در کوکی را استفاده می شود را encrypt و decrypt می کند.

همچنین اجازه ی ساخت و پیکربندی validation key هایی را می دهد که پیام های هویت سنجی را در داده های view-state و فرم های authentication ticket بررسی می کند.

< machineKey validationKey="AutoGenerate,IsolateApps" [String]
   decryptionKey="AutoGenerate,IsolateApps" [String]
   validation="HMACSHA256" [SHA1 | MD5 | 3DES | AES | HMACSHA256 |
   HMACSHA384 | HMACSHA512 | alg:algorithm_name]
   decryption="Auto" [Auto | DES | 3DES | AES | alg:algorithm_name]
/ >
                        

Membership

این Sub element پارامترهای (مربوط به) مدیریت و احراز هویت حساب های کاربری (user account) را تنظیم و پیکربندی می کند. دستور نگارش کلی این sub element از قرار زیر می باشد:

< membership defaultProvider="provider name"
   userIsOnlineTimeWindow="number of minutes" hashAlgorithmType="SHA1" >
   < providers >...< /providers >
< /membership >
                        

Pages

تنظیمات و پیکربندی مختص و مربوط به صفحه را انجام می دهد. دستور کلی نگارش sub element به صورت زیر می باشد:

< 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]"
      maintainScrollPositionOnPostBack="[True|False]"
      masterPageFile="file path"
      maxPageStateFieldLength="number"
      pageBaseType="typename, assembly"
      pageParserFilterType="string"
      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 >
                        

Profile

پارامترهای پروفایل کاربر (user profile) را تنظیم می کند. Syntax:

< profile enabled="true|false" inherits="fully qualified type reference"
   automaticSaveEnabled="true|false" defaultProvider="provider name" >
   < properties >...< /properties >
   < providers >...< /providers >
< /profile >
                        

RoleManager

تنظیمات مربوط به نقش کاربری (user role) را پیکربندی می کند.

< roleManager cacheRolesInCookie="true|false" cookieName="name"
   cookiePath="/" cookieProtection="All|Encryption|Validation|None"
   cookieRequireSSL="true|false " cookieSlidingExpiration="true|false "
   cookieTimeout="number of minutes" createPersistentCookie="true|false"
   defaultProvider="provider name" domain="cookie domain" >
   enabled="true|false"
   maxCachedResults="maximum number of role names cached"
   < providers >...< /providers >
< /roleManager >
                        

UrlMappings

با تعریف mapping (نگاشت) های جدید url اصلی را مخفی ساخته و یک url کاربر پسند تر بجای آن ارائه می دهد.

< urlMappings enabled="true|false" >
   < add.../ >
   < clear / >
   < remove.../ >
< /urlMappings >
                        

WebControls

مکان مشترک برای اسکریپت های کلاینت (client script) را فراهم می سازد. نحوه ی نگارش این sub element به شرح زیر می باشد:

< webControls clientScriptsLocation="String" / >
                        

WebServices

این sub element سرویس های وب (web service) را پیکربندی می کند.


  • 3833
  •    1132
  • تاریخ ارسال :   1394/07/27

دانلود PDF دانشجویان گرامی اگر این مطلب برای شما مفید بود لطفا ما را در GooglePlus محبوب کنید
رمز عبور: tahlildadeh.com یا www.tahlildadeh.com
ارسال دیدگاه نظرات کاربران
شماره موبایل دیدگاه
عنوان پست الکترونیک

ارسال

آموزشگاه برنامه نویسی تحلیل داده
آموزشگاه برنامه نویسی تحلیل داده

تمامی حقوق این سایت متعلق به آموزشگاه تحلیل داده می باشد .