ASP.NET - پیکربندی

رفتار یک برنامه ASP.NET تحت تأثیر تنظیمات مختلف در فایل های پیکربندی قرار می گیرد:machine.configweb.configفایل machine.config حاوی پیش‌فرض و مقدار مخصوص دستگاه برای همه تنظیمات پشتیبانی‌شده است. تنظیمات دستگاه توسط مدیر سیستم کنترل می شود و برنامه ها معمولاً به این فایل دسترسی ندارند.با این حال، یک برنامه کاربردی می‌تواند با ایجاد فایل‌های web.config در پوشه roots، مقادیر پیش‌فرض را لغو کند. فایل web.config زیرمجموعه ای از فایل machine.config است.اگر برنامه حاوی دایرکتوری های فرزند باشد، می تواند یک فایل web.config برای هر پوشه تعریف کند. دامنه هر فایل پیکربندی به صورت سلسله مراتبی از بالا به پایین تعیین می شود.هر فایل web.config می تواند به صورت محلی تنظیمات تعریف شده در سطح بالا را گسترش دهد، محدود یا لغو کند.ویژوال استودیو یک فایل web.config پیش فرض برای هر پروژه تولید می کند. یک برنامه می تواند بدون فایل web.config اجرا شود، با این حال، شما نمی توانید یک برنامه را بدون فایل web.config اشکال زدایی کنید.شکل زیر Solution Explorer را برای نمونه نمونه استفاده شده در آموزش وب سرویس ها نشان می دهد:در این نرم افزار دو فایل web.config برای دو پروژه یعنی وب سرویس و وب سایتی که سرویس وب را فراخوانی می کند وجود دارد.فایل web.config عنصر پیکربندی را به عنوان گره ریشه دارد. اطلاعات داخل این عنصر به دو بخش اصلی گروه بندی می شوند: قسمت پیکربندی بخش اعلام کننده کنترل کننده، و قسمت تنظیمات بخش پیکربندی.قطعه کد زیر، نحو اصلی یک فایل پیکربندی را نشان می دهد:<configuration> <!-- 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>اعلامیه های کنترل کننده بخش پیکربندیکنترل‌کننده‌های بخش پیکربندی در تگ‌های <configSections> قرار دارند. هر کنترل کننده پیکربندی نام یک بخش پیکربندی را مشخص می کند که در داخل فایل قرار دارد و برخی از داده های پیکربندی را ارائه می دهد. این دستور پایه زیر را دارد:<configSections> <section /> <sectionGroup /> <remove /> <clear/></configSections>دارای عناصر زیر است:پاک کردن - تمام ارجاعات به بخش ها و گروه های بخش به ارث برده شده را حذف می کند.حذف - ارجاع به بخش و گروه بخش ارثی را حذف می کند.بخش - ارتباط بین کنترل کننده بخش پیکربندی و عنصر پیکربندی را تعریف می کند.گروه بخش - ارتباط بین کنترل کننده بخش پیکربندی و بخش پیکربندی را تعریف می کند.تنظیمات برنامهتنظیمات برنامه اجازه می دهد تا جفت های نام-مقدار برنامه را برای دسترسی فقط خواندنی ذخیره کنید. به عنوان مثال، می توانید یک تنظیم برنامه سفارشی را به صورت زیر تعریف کنید:<configuration> <appSettings> <add key="Application Name" value="MyApplication" /> </appSettings></configuration>برای مثال، می‌توانید نام کتاب و شماره شابک آن را نیز ذخیره کنید:<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; 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 عنصر ریشه را برای بخش پیکربندی 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> <membership> <mobileControls> <pages> <processModel> <profile> <roleManager> <securityPolicy> <sessionPageState> <sessionState> <siteMap> <trace> <trust> <urlMappings> <webControls> <webParts> <webServices> <xhtmlConformance> </system.web>جدول زیر توضیحات مختصری در مورد برخی از عناصر فرعی مشترک عنصر system.web ارائه می دهد:شناسایی ناشناساین برای شناسایی کاربرانی که در صورت نیاز به مجوز احراز هویت نشده اند، لازم است.احراز هویتپشتیبانی احراز هویت را پیکربندی می کند. نحو اصلی به شرح زیر است:<authentication mode="[Windows|Forms|Passport|None]"> <forms>...</forms> <passport/></authentication>مجوزپشتیبانی مجوز را پیکربندی می کند. نحو اصلی به شرح زیر است:<authorization> <allow .../> <deny .../></authorization>ذخیره سازیتنظیمات کش را پیکربندی می کند. نحو اصلی به شرح زیر است:<caching> <cache>...</cache> <outputCache>...</outputCache> <outputCacheSettings>...</outputCacheSettings> <sqlCacheDependency>...</sqlCacheDependency></caching>خطاهای مشتریپیام های خطای سفارشی را تعریف می کند. نحو اصلی به شرح زیر است:<customErrors defaultRedirect="url" mode="On|Off|RemoteOnly"> <error. . ./></customErrors>گسترشتنظیمات پیکربندی مورد استفاده برای استقرار را تعریف می کند. نحو اصلی به شرح زیر است:<deployment retail="true|false" />Hosting Environmentتنظیمات پیکربندی را برای محیط میزبانی تعریف می کند. نحو اصلی به شرح زیر است:<hostingEnvironment idleTimeout="HH:MM:SS" shadowCopyBinAssemblies="true|false" shutdownTimeout="number" urlMetadataSlidingExpiration="HH:MM:SS" />هویتهویت برنامه را پیکربندی می کند. نحو اصلی به شرح زیر است:<identity impersonate="true|false" userName="domain\username" password="<secure password>"/>MachineKeyاین کلیدها را برای استفاده برای رمزگذاری و رمزگشایی داده های کوکی احراز هویت Forms پیکربندی می کند.همچنین اجازه می دهد تا یک کلید اعتبار سنجی را پیکربندی کنید که بررسی احراز هویت پیام را روی داده های حالت مشاهده انجام می دهد و تیکت های احراز هویت را تشکیل می دهد. نحو اصلی این است:<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 defaultProvider="provider name" userIsOnlineTimeWindow="number of minutes" hashAlgorithmType="SHA1"> <providers>...</providers></membership>PagesIt provides page-specific configurations. The basic syntax is:<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 enabled="true|false" inherits="fully qualified type reference" automaticSaveEnabled="true|false" defaultProvider="provider name"> <properties>...</properties> <providers>...</providers> </profile>مدیر نقشتنظیمات را برای نقش های کاربر پیکربندی می کند. نحو اصلی این است:<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>خط مشی امنیتیاین سیاست امنیتی را پیکربندی می کند. نحو اصلی این است:<securityPolicy> <trustLevel /></securityPolicy>UrlMappingsاین نگاشت ها را برای پنهان کردن URL اصلی و ارائه یک URL کاربر پسندتر تعریف می کند. نحو اصلی این است:<urlMappings enabled="true|false"> <add.../> <clear /> <remove.../></urlMappings>کنترل های وبنام مکان مشترک را برای اسکریپت های مشتری ارائه می دهد. نحو اصلی این است:<webControls clientScriptsLocation="String" />خدمات وباین سرویس های وب را پیکربندی می کند.