Perilaku aplikasi ASP.NET ditentukan oleh pengaturan berbeda dalam dua file konfigurasi berikut:
mesin.config
web.config
File machine.config berisi nilai default dan khusus mesin untuk semua pengaturan yang didukung. Mesin diatur oleh administrator sistem, dan aplikasi umumnya tidak dapat mengakses file ini.
Namun, aplikasi dapat mengambil alih nilai default dengan membuat file web.config di folder akarnya. File web.config adalah bagian dari file machine.config.
Jika aplikasi berisi subdirektori, aplikasi dapat menentukan file web.config untuk setiap folder. Ruang lingkup setiap profil ditentukan secara hierarkis dari atas ke bawah.
File web.config apa pun dapat memperluas, membatasi, atau mengganti pengaturan apa pun yang ditentukan di atas secara lokal.
Visual Studio menghasilkan file web.config default untuk setiap proyek. Aplikasi dapat dijalankan tanpa file web.config, namun kita tidak dapat men-debug aplikasi tanpa file web.config.
Gambar berikut menunjukkan contoh contoh Solution Explorer yang digunakan dalam tutorial layanan web:
Dalam aplikasi ini, ada dua file web.config yang sesuai dengan layanan web dan situs web yang memanggil layanan web tersebut.
Elemen konfigurasi di file web.config berfungsi sebagai node root. Informasi dalam elemen ini dibagi menjadi dua area utama: area deklarasi pengendali bagian konfigurasi, dan area pengaturan bagian konfigurasi.
Cuplikan kode berikut menunjukkan sintaks dasar file konfigurasi:
<configuration> <!-- Area deklarasi pengendali bagian konfigurasi. --> <configSections> <section name="section1" type="section1Handler" /> <section name="section2" type="section2Handler" /> </ configSections> <!-- Area pengaturan bagian konfigurasi. --> <section1> <s1Setting1 atribut1="attr1" /> </section1> <section2> <s2Setting1 atribut1="attr1" /> </section2> <system.web> <authentication mode="Windows" /> </system.web> </configuration>
Deklarasi pengendali bagian konfigurasi terkandung dalam tag. Setiap pengendali konfigurasi menentukan nama bagian konfigurasi dan terkandung dalam file yang menyediakan beberapa data konfigurasi. Ini memiliki sintaks dasar berikut:
<configSections> <bagian /> <sectionGroup /> <hapus /> <hapus/> </configSections>
Ini memiliki elemen-elemen berikut:
Hapus - Semua referensi ke bagian yang diwarisi dan grup bagian.
Hapus - Menghapus bagian referensi yang diwariskan dan grup bagian.
Bagian - Mendefinisikan hubungan antara penangan bagian konfigurasi dan elemen konfigurasi.
Grup bagian - Ini mendefinisikan hubungan antara pengendali bagian konfigurasi dan bagian konfigurasi.
Pengaturan aplikasi memungkinkan penyimpanan pasangan nama-nilai untuk aplikasi dengan akses hanya baca. Misalnya, Anda dapat menentukan pengaturan aplikasi kustom sebagai berikut:
<konfigurasi> <appSettings> <add key="Nama Aplikasi" value="Aplikasi Saya" /> </appSettings> </configuration>
Misalnya, Anda juga dapat menyimpan pasangan data nomor ISBN dan nama buku:
<configuration> <appSettings> <add key="appISBN" value="0-273-68726-3" /> <add key="appBook" value="Corporate Finance" /> </appSettings> </configuration>
String koneksi menunjukkan string koneksi database yang dapat digunakan untuk situs web. Misalnya:
<connectionStrings> <tambahkan nama="ASPDotNetStepByStepConnectionString" connectionString="Provider=Microsoft.Jet.OLEDB.4.0; Sumber Data=E:\projectsdatacaching / datacachingApp_DataASPDotNetStepByStep.mdb" providerName="System.Data. OleDb" /> <tambahkan nama="booksConnectionString" connectionString="Provider=Microsoft.Jet.OLEDB.4.0; Sumber Data=C: databindingApp_Databooks.mdb" providerName="System.Data.OleDb" /> </connectionStrings>
Elemen system.web menentukan elemen root untuk bagian konfigurasi ASP.NET dan berisi elemen konfigurasi yang mengkonfigurasi aplikasi Web ASP.NET dan mengontrol pengoperasian aplikasi.
Ini mengontrol sebagian besar elemen konfigurasi umum yang perlu disesuaikan. Sintaks dasar elemen ini adalah sebagai berikut:
<system.web> <anonymousIdentification> <autentikasi> <otorisasi> <browserCaps> <caching> <clientTarget> <kompilasi> <customErrors> <deployment> <deviceFilters> <globalisasi> <healthMonitoring> <hostingEnvironment> <httpCookies> <httpHandlers> <httpModules> <httpRuntime> <identitas> <machineKey> <keanggotaan> <mobileControls> <pages> <processModel> <profile> <roleManager> <securityPolicy> <sessionPageState> <sessionState> <siteMap> <trace> <trust> <urlMappings> <webControls> <webParts> <webServices> <xhtmlConformance > </sistem.web>
Tabel berikut memberikan deskripsi singkat tentang sub-elemen dari beberapa elemen system.web yang umum digunakan:
Ini digunakan untuk mengidentifikasi pengguna yang tidak diautentikasi ketika konfirmasi identitas pengguna diperlukan.
Ini didukung oleh otorisasi konfigurasi.
<otorisasi> <izinkan .../> <tolak .../> </otorisasi>
Ini mengkonfigurasi pengaturan cache. Sintaks dasarnya adalah:
<caching> <cache>...</cache> <outputCache>...</outputCache> <outputCacheSettings>...</outputCacheSettings> <sqlCacheDependency>...</sqlCacheDependency> </caching>
Ini mendefinisikan pesan kesalahan khusus. Sintaks dasarnya adalah:
<customErrors defaultRedirect="url" mode="Aktif|Mati|RemoteOnly"> <kesalahan./> </customErrors>
Ini mendefinisikan pengaturan konfigurasi yang digunakan untuk penerapan. Sintaks dasarnya adalah sebagai berikut:
<penerapan retail="benar|salah" />
Ini mendefinisikan pengaturan konfigurasi untuk lingkungan hosting. Sintaks dasarnya adalah sebagai berikut:
<hostingEnvironment idleTimeout="HH:MM:SS" shadowCopyBinAssemblies="true|false" shutdownTimeout="number" urlMetadataSlidingExpiration="HH:MM:SS" />
Ini digunakan untuk mengkonfigurasi mekanisme otentikasi untuk aplikasi. Sintaks dasarnya adalah sebagai berikut:
<identity impersonate="true|false" userName="domainnama pengguna" password="<kata sandi aman>"/>
Ini digunakan untuk mengonfigurasi kunci yang digunakan untuk cookie otentikasi formulir untuk mengenkripsi dan mendekripsi data.
Hal ini juga memungkinkan konfigurasi kunci autentikasi untuk melakukan pemeriksaan autentikasi pesan pada data status tampilan dan tiket autentikasi Formulir. Sintaks dasarnya adalah:
<machineKey validationKey="AutoGenerate,IsolateApps" [String] decryptionKey="AutoGenerate,IsolateApps" [String] validasi="HMACSHA256" [SHA1 | MD5 | " [Otomatis | DES | 3DES | AES |.alg:nama_algoritma] />
Ini digunakan untuk mengonfigurasi manajemen dan mengautentikasi parameter pengguna. Sintaks dasarnya adalah:
<membership defaultProvider="nama penyedia" userIsOnlineTimeWindow="jumlah menit" hashAlgorithmType="SHA1"> <penyedia>...</penyedia> </keanggotaan>
Ini menyediakan konfigurasi spesifik halaman web. Sintaks dasarnya adalah:
<pages asyncTimeout="number" autoEventWireup="[Benar|Salah]" buffer="[Benar|Salah]" clientIDMode="[AutoID|Dapat Diprediksi|Statis]" kompilasiMode="[Selalu|Otomatis|Tidak Pernah]" controlRenderingCompatibilityVersion=" [3.5|4.0]" aktifkanEventValidation="[Benar|Salah]" aktifkanSessionState="[Benar|Salah|ReadOnly]" aktifkanViewState="[Benar|Salah]" aktifkanViewStateMac="[Benar|Salah]" maintenanceScrollPositionOnPostBack="[Benar|Salah]" masterPageFile="jalur file" maxPageStateFieldLength="angka" pageBaseType ="nama tipe, rakitan" pageParserFilterType="string" smartNavigation="[Benar|Salah]" styleSheetTheme="string" theme="string" userControlBaseType="typename" validasiRequest="[Benar|Salah]" viewStateEncryptionMode="[Selalu|Otomatis|Tidak Pernah]" > <kontrol>.. .</controls> <namespaces>...</namespaces> <tagMapping>...</tagMapping> <ignoreDeviceFilters>...</ignoreDeviceFilters> </pages>
Ini digunakan untuk mengkonfigurasi parameter profil pengguna. Sintaks dasarnya adalah:
<profile diaktifkan="benar|false" mewarisi="referensi jenis yang sepenuhnya memenuhi syarat" automaticSaveEnabled="true|false" defaultProvider="nama penyedia"> <properties>...</properties> <providers>...</providers > </profil>
Konfigurasikan informasi pengaturan untuk peran pengguna. Sintaks dasarnya adalah:
<roleManager cacheRolesInCookie="true|false" cookieName="nama" cookiePath="/" cookieProtection="Semua|Enkripsi|Validasi|Tidak Ada" cookieRequireSSL="true|false " cookieSlidingExpiration="true|false " cookieTimeout="jumlah menit " createPersistentCookie="true|false" defaultProvider="nama penyedia" domain="domain cookie"> diaktifkan="benar|false" maxCachedResults="jumlah maksimum nama peran yang di-cache" <providers>...</providers> </roleManager>
Digunakan untuk mengonfigurasi kebijakan keamanan. Sintaks dasarnya adalah:
<kebijakan keamanan> <tingkat kepercayaan /> </kebijakan keamanan>
Ini mendefinisikan pemetaan untuk menyembunyikan URL asli dan menyediakan URL yang lebih ramah pengguna. Sintaks dasarnya adalah:
<urlMappings diaktifkan="benar|salah"> <tambahkan.../> <hapus /> <hapus.../> </urlMappings>
Ini memberikan nama lokasi bersama untuk skrip klien. Sintaks dasarnya adalah:
<webControls clientScriptsLocation="String" />
Digunakan untuk mengkonfigurasi layanan web.