Поведение приложения ASP.NET определяется различными параметрами в следующих двух файлах конфигурации:
машина.конфигурация
веб.конфигурация
Файл 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 атрибут1="attr1" /> </section1> <section2> <s2Setting1 атрибут1="attr1" /> </section2> <system.web> <authentication mode="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="Корпоративные финансы" /> </appSettings> </configuration>
Строка подключения показывает строку подключения к базе данных, которую можно использовать для веб-сайта. Например:
<connectionStrings> <add name="ASPDotNetStepByStepConnectionString" ConnectionString="Provider=Microsoft.Jet.OLEDB.4.0; Data Source=E:\projectsdatacaching/datacachingApp_DataASPDotNetStepByStep.mdb" поставщикаName="System.Data. OleDb" /> <add name="booksConnectionString" ConnectionString="Provider=Microsoft.Jet.OLEDB.4.0; Data Source=C: databindingApp_Databooks.mdb" поставщикаName="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 :
Это используется для идентификации неаутентифицированных пользователей, когда требуется подтверждение личности пользователя.
Он поддерживается авторизацией конфигурации. Основной синтаксис:
<авторизация> <разрешить .../> <запретить .../> </авторизация>
Он настраивает параметры кэша. Основной синтаксис:
<caching> <cache>...</cache> <outputCache>...</outputCache> <outputCacheSettings>...</outputCacheSettings> <sqlCacheDependency>...</sqlCacheDependency> </caching>
Он определяет пользовательское сообщение об ошибке. Основной синтаксис:
<customErrors defaultRedirect="url" mode="On|Off|RemoteOnly"> <error./> </customErrors>
Он определяет параметры конфигурации, используемые для развертывания. Основной синтаксис следующий:
<развертывание розничной торговли="true|false" />
Он определяет параметры конфигурации среды хостинга. Основной синтаксис следующий:
<hostingEnvironmentdleTimeout="ЧЧ:ММ:СС"shadowCopyBinAssemblies="true|false" ShutdownTimeout="number" urlMetadataSlidingExpiration="ЧЧ:ММ:СС" />
Он используется для настройки механизма аутентификации приложения. Основной синтаксис следующий:
<identity impersonate="true|false" userName="domainusername" пароль="<безопасный пароль>"/>
Он используется для настройки ключа, используемого для файла cookie проверки подлинности форм для шифрования и расшифровки данных.
Он также позволяет настраивать ключи аутентификации для выполнения проверок аутентификации сообщений для данных состояния просмотра и билетов аутентификации форм. Основной синтаксис:
<machineKey validationKey="AutoGenerate,IsolateApps" [String] decryptionKey="AutoGenerate,IsolateApps" [String] validation="HMACSHA256" [SHA1 | MD5 | 3DES | HMACSHA384 | HMACSHA512 | " [Авто | DES | 3DES | AES | алгоритм:имя_алгоритма] />
Он используется для настройки управления и аутентификации пользовательских параметров. Основной синтаксис:
<membership defaultProvider="имя провайдера" 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]" MaintenanceScrollPositionOnPostBack="[True|False]" masterPageFile="путь к файлу" maxPageStateFieldLength="номер" 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>
Он используется для настройки параметров профиля пользователя. Основной синтаксис:
<profile Enabled="true|false" inherits="полная ссылка на тип" autoSaveEnabled="true|false" defaultProvider="имя поставщика"> <properties>...</properties> <providers>...</providers > </профиль>
Настройте информацию о параметрах для ролей пользователей. Основной синтаксис:
<roleManagercacheRolesInCookie="true|false" cookieName="name" cookiePath="/" cookieProtection="All|Encryption|Validation|None" cookieRequireSSL="true|false" cookieSlidingExpiration="true|false" cookieTimeout="количество минут " createPersistentCookie="true|false" defaultProvider="имя поставщика" домен="домен cookie"> Enabled="true|false" maxCachedResults="максимальное количество кэшированных имен ролей" <providers>...</providers> </roleManager>
Используется для настройки политик безопасности. Основной синтаксис:
<securityPolicy> <trustLevel /> </securityPolicy>
Он определяет сопоставления для сокрытия исходных URL-адресов и предоставления более удобных для пользователя URL-адресов. Основной синтаксис:
<urlMappings Enabled="true|false"> <add.../> <clear /> <remove.../> </urlMappings>
Он предоставляет имя общего расположения для клиентских сценариев. Основной синтаксис:
<webControls clientScriptsLocation="String" />
Используется для настройки веб-сервисов.