آموزش پیکربندی با فایل web.config در ASP.NET با توضیحات کامل
پیکربندی
رفتار یک برنامه کاربردی ASP.NET ، تحت تأثیر تنظیمات مختلف در فایل های پیکربندی است:
- machine.config
- web.config
فایل machine.config ، شامل مقادیر پیش فرض و خاص ماشین است که برای تمام تنظیمات پشتیبانی شده ، به کار می روند. تنظیمات ماشین توسط مدیر سیستم کنترل می شود و برنامه های کاربردی به طور کلی به این فایل دسترسی ندارند.
با این وجود، یک برنامه کاربردی می تواند با ایجاد فایل های web.config در پوشه roots خود ، مقادیر پیش فرض را لغو نماید. فایل web.config زیر مجموعه ای از فایل machine.config است.
اگر برنامه کاربردی ، حاوی دایرکتوری های فرزند باشد، می تواند یک فایل web.config را برای هر پوشه تعریف کند. محدوده هر فایل پیکربندی (configuration file) در یک سلسله مراتب بالا به پایین تعیین می شود.
هر فایل web.config ، می تواند به صورت محلی توسعه یابد ، محدود شود ، یا هر تنظیم تعریف شده در سطوح بالا را لغو نماید.
ویژوال استودیو ، یک فایل پیش فرض web.config را برای هر پروژه ایجاد می کند. یک برنامه کاربردی می تواند بدون یک فایل web.config اجرا شود، اما ، نمی توانیم یک برنامه کاربردی را بدون فایل web.config اشکال زدایی نماییم.
شکل زیر ، Solution Explorer را که برای مثال نمونه در آموزش "سرویس های وب" استفاده شده است ، نشان می دهد:
در این برنامه کاربردی ، دو فایل web.config برای دو پروژه وجود دارد ، یعنی سرویس وب و وب سایت که سرویس وب را فراخوانی می کند.
فایل web.config ، عنصر پیکربندی را به عنوان گره ریشه (root node) دارد. اطلاعات درون این عنصر به دو ناحیه اصلی تقسیم می شوند : ناحیه اعلان هندلر بخش پیکربندی و ناحیه تنظیمات بخش پیکربندی.
قطعه کد زیر قاعده نوشتاری (syntax) اصلی یک فایل پیکربندی را نشان می دهد:
<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> قرار داده می شوند. هر هندلر پیکربندی ، نام یک بخش پیکربندی را که درون فایل قرار دارد ، مشخص می کند. این هندلرها ، برخی از داده های پیکربندی را فراهم می نمایند. syntax پایه ای این هندلر به صورت زیر است:
<configSections>
<section />
<sectionGroup />
<remove />
<clear/>
</configSections>
هندلر فوق ، عناصر زیر را دارد:
- Clear : این عنصر ، تمام ارجاع ها به بخش های به ارث برده شده و گروه های بخش را حذف می کند.
- Remove : یک ارجاع به بخش به ارث برده شده و گروه بخش را حذف می کند.
- Section : این عنصر ، یک ارتباط بین یک هندلر بخش پیکربندی و یک عنصر پیکربندی را تعریف می کند.
- Section group : این عنصر ، یک ارتباط بین یک هندلر بخش پیکربندی و یک بخش پیکربندی را تعریف می کند.
تنظیمات برنامه کاربردی
تنظیمات برنامه کاربردی ، اجازه می دهد که جفت های name-value ، برنامه کاربردی را برای دسترسی فقط خواندنی (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
رشته های connection ، نشان می دهند که کدام رشته های اتصال پایگاه داده ، برای وب سایت در دسترس هستند. به طور مثال:
<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 برای بخش پیکربندی ASP.NET را مشخص می کند و حاوی عناصر پیکربندی است که برنامه های کاربردی Web ASP.NET را پیکربندی می کنند و نحوه رفتار برنامه های کاربردی را کنترل می نمایند.
این عنصر ، اکثر عناصر پیکربندی مورد نیاز برای تنظیم در برنامه های کاربردی معمول را دارا می باشد. syntax پایه ای برای عنصر به صورت زیر است:
<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 را شرح می دهیم:
AnonymousIdentification
این عنصر ، برای شناسایی کاربرانی که تأیید اعتبار ندارند ، در مواقعی که مجوز لازم است ، به کار می رود.
Authentication
این عنصر ، پشتیبانی از احراز هویت را پیکربندی می کند. syntax پایه ای آن به صورت زیر است:
<authentication mode="[Windows|Forms|Passport|None]">
<forms>...</forms>
<passport/>
</authentication>
Authorization
این عنصر ، پشتیبانی از مجوز را تنظیم می کند. syntax پایه ای آن به صورت زیر است:
<authorization>
<allow .../>
<deny .../>
</authorization>
Caching
این عنصر تنظیمات حافظه پنهان را پیکربندی می کند. syntax پایه ای آن به صورت زیر است:
<caching>
<cache>...</cache>
<outputCache>...</outputCache>
<outputCacheSettings>...</outputCacheSettings>
<sqlCacheDependency>...</sqlCacheDependency>
</caching>
CustomErrors
این عنصر ، پیام های خطای سفارشی را تعریف می کند. syntax پایه ای آن به صورت زیر است:
<customErrors defaultRedirect="url" mode="On|Off|RemoteOnly">
<error. . ./>
</customErrors>
Deployment
این عنصر ، تنظیمات پیکربندی مورد استفاده برای استقرار را تعریف می کند. syntax پایه ای آن به صورت زیر است:
<deployment retail="true|false" />
HostingEnvironment
این عنصر ، تنظیمات پیکربندی برای محیط میزبانی را تعریف می کند. syntax پایه ای آن به شرح زیر است:
<hostingEnvironment idleTimeout="HH:MM:SS" shadowCopyBinAssemblies="true|false"
shutdownTimeout="number" urlMetadataSlidingExpiration="HH:MM:SS" />
Identity
این عنصر ، شناسه برنامه کاربردی را پیکربندی می کند. syntax پایه ای آن به صورت زیر است:
<identity impersonate="true|false" userName="domain\username"
password="<secure password>"/>
MachineKey
این عنصر ، کلیدهایی را جهت استفاده در رمزنگاری و رمزگشایی داده های کوکی فرم های احراز هویت ، پیکربندی می کند.
هم چنین امکان پیکربندی یک کلید اعتبار سنجی را فراهم می کند که بررسی احراز هویت پیام را بر روی داده های view-state و ticket های فرم های تأیید هویت انجام می دهد. Syntax پایه ای آن به صورت زیر است:
<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
این عنصر ، پارامترهای مدیریت و تأیید اعتبار حساب های کاربری را پیکربندی می کند. syntax پایه ای آن به صورت زیر است:
<membership defaultProvider="provider name"
userIsOnlineTimeWindow="number of minutes" hashAlgorithmType="SHA1">
<providers>...</providers>
</membership>
Pages
این عنصر ، پیکربندی های خاص صفحه را فراهم می کند. syntax پایه ای آن به صورت زیر است:
<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
این عنصر ، پارامترهای پروفایل کاربر را پیکربندی می کند. syntax پایه ای آن به صورت زیر است:
<profile enabled="true|false" inherits="fully qualified type reference"
automaticSaveEnabled="true|false" defaultProvider="provider name">
<properties>...</properties>
<providers>...</providers>
</profile>
RoleManager
این عنصر ، تنظیمات را برای نقش های کاربر پیکربندی می کند. syntax پایه ای آن به صورت زیر است:
<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
این عنصر ، سیاست امنیتی را پیکربندی می کند. syntax پایه ای آن به صورت زیر است:
<securityPolicy>
<trustLevel />
</securityPolicy>
UrlMappings
این عنصر ، نگاشت هایی را برای مخفی کردن URL اصلی تعریف می کند و یک URL را که user friendly است ارائه می دهد. Syntax پایه یا آن به صورت زیر است:
<urlMappings enabled="true|false">
<add.../>
<clear />
<remove.../>
</urlMappings>
WebControls
این عنصر ، نام موقعیت به اشتراک گذاشته شده برای اسکریپت های کلاینت را فراهم می کند. syntax پایه ای آن به صورت زیر است:
<webControls clientScriptsLocation="String" />
WebServices
این عنصر ، سرویس های وب را پیکربندی می کند.
این فصل در یک نگاه:
در این فصل پس از بررسی سیستم مسیریابی و طراحی صفحه نمایش ویدیو ها، به سراغ پنل کاربری خواهیم رفت و مباحث Model Binding و…
توجه: این دوره آموزشی به صورت پیوسته بر اساس آخرین نسخه ی ASP.NET Core بروزرسانی خواهد شد. آموزش صفر تا صد طراحی سایت اشتراک ویدیو مشابه آپارات با استفاده از ASP.NET CORE MVC 3.0 و V…این فصل در یک نگاه:
…
توضیحات کلی مجموعه: در این مجموعه قصد داریم تا فروشگاه اینترنتی دیجی کالا رو با Asp.Net Core3 پیاده سازی کنیم. ابتدا طراحی قالب دیجی کالا رو به صورت کامل انجام خواهیم داد. در مرحله میریم …این فصل در یک نگاه:
…
توضیحات کلی مجموعه: در این مجموعه آموزشی، با استفاده از جدیدترین تکنولوژی ها و ابزار های مایکروسافت (دات نت)، به یک پروژه جذاب مدیریت آگهی مشابه دیوار می پردازیم. این آموزش در دو بخش کلی و…این فصل در یک نگاه:
در این دوره به آموزش صفر تا صد جدیدترین نسخه ASP یعنی CORE جدیدترین ورژن خواهیم پرداخت.این آموزش از سطح مقدماتی تا فوق …
دوره آموزش کامل طراحی وب به همراه پروژه ساخت سیستم مدیریت کتابخانه این دوره با کور 1 آغاز می شود و در ادامه پروژه به کور 2 تبدیل می شودو پروژه نهایی (سیستم مدیریت کتابخانه) با Asp.net کور…این فصل در یک نگاه:
ساخت محیط کاربریآموزش نحوه ی ارسال ایمیل در Asp.net MVCآموزش تنظیمات Gmail برای استفادهاستفاده از Yahooاستفاده از سرویس …
به نام خدا... در خدمتتون هستم با آموزش ارسال ایمیل در Asp.net MVC... ارسال ایمیل یکی از اجزای اصلی ییک سایت به شمار می رود و واقعا سایتی که برای اجزای مختلفش همانند ثبت کاربر جدید و یا ارسال…این فصل در یک نگاه:
فصل دوم در یک نگاه:فصل دوم در یک نگاه:…
در این پکیج به مبحث طراحی وب ، در قالب ساخت یک سایت فروشگاهی 5040 به آدرس http://5040.ir می پردازیم که به جرات مشهورترین و یکی از برترین فروشگاه های مجازی در کشور است. در این مجموعه قصد داری…این فصل در یک نگاه:
…
در این دوره آموزشی، وبسایت ورزش3 را با استفاده از ASP.NET Core پیاده سازی می کنیم و همچنین اپ اندروید آن را هم با Xamarin متصل به سرور سایت طراحی و در نهایت نحوه انتشار آن در مارکت هایی مثل …این فصل در یک نگاه:
کاملترین آموزش هاست و کار با سی پنل.در هنگام خرید سرویس هاست کلمه ای به نام “کنترل پنل” را زیاد خواهید دید آیا تا به حال…
سی پنل یک کنترل پنل هاست محبوب و معروف در جهان و ایران است. در فیلم آموزش سی پنل هم توصیه اکید شده تا افراد مبتدی و حتی افراد حرفه ای از این کنترل پنل هاست سی پنل استفاده کنند. آموزش cpanel …این فصل در یک نگاه:
فصل پنجم…
توضیحات کلی مجموعه: درباره گیت: لذت پیش بردن پروژه های برنامه نویسی خود را با بهترین ورژن کنترل سیستم جهان تجربه کنید کامل ترین دوره ی آموزشی گیت و گیت هاب به همراه مثال های کاربردی گی…این فصل در یک نگاه:
رشد و درآمدزایی یک وب سایت یا کسب و کار اینترنتی کاملا به ذوق و مهارت وب مستر یا همان مدیر اصلی وب سایت گره خورده و متاس…
اصول مدیریت وب سایت برای وب مستر شدن برای موفقیت یک وب سایت لازم الاجراست. زیرا شما دوست دارید وب سایت خود را به کارخانه پولسازی تبدیل کنید. این واقعیت رویا نیست. هرکس این اصول را بداند به …