- ASP.NET 教程
- ASP.NET - 首页
- ASP.NET - 简介
- ASP.NET - 环境
- ASP.NET - 生命周期
- ASP.NET - 第一个示例
- ASP.NET - 事件处理
- ASP.NET - 服务器端
- ASP.NET - 服务器控件
- ASP.NET - HTML 服务器控件
- ASP.NET - 客户端
- ASP.NET - 基本控件
- ASP.NET - 指令
- ASP.NET - 状态管理
- ASP.NET - 验证器
- ASP.NET - 数据库访问
- ASP.NET - ADO.NET
- ASP.NET - 文件上传
- ASP.NET - 广告轮播
- ASP.NET - 日历控件
- ASP.NET - 多视图
- ASP.NET - 面板控件
- ASP.NET - AJAX 控件
- ASP.NET - 数据源
- ASP.NET - 数据绑定
- ASP.NET - 自定义控件
- ASP.NET - 个性化
- ASP.NET - 错误处理
- ASP.NET - 调试
- ASP.NET - LINQ
- ASP.NET - 安全性
- ASP.NET - 数据缓存
- ASP.NET - Web 服务
- ASP.NET - 多线程
- ASP.NET - 配置
- ASP.NET - 部署
- ASP.NET 资源
- ASP.NET - 快速指南
- ASP.NET - 有用资源
- ASP.NET - 讨论
ASP.NET - 配置
ASP.NET 应用程序的行为受配置文件中不同设置的影响。
- machine.config
- web.config
machine.config 文件包含所有支持设置的默认值和特定于计算机的值。计算机设置由系统管理员控制,应用程序通常无法访问此文件。
但是,应用程序可以通过在其根文件夹中创建 web.config 文件来覆盖默认值。web.config 文件是 machine.config 文件的一个子集。
如果应用程序包含子目录,则可以为每个文件夹定义一个 web.config 文件。每个配置文件的作用域以分层自上而下的方式确定。
任何 web.config 文件都可以本地扩展、限制或覆盖上级定义的任何设置。
Visual Studio 为每个项目生成一个默认的 web.config 文件。应用程序可以在没有 web.config 文件的情况下执行,但是,如果没有 web.config 文件,则无法调试应用程序。
下图显示了 Web 服务教程中使用的示例的解决方案资源管理器。
在此应用程序中,有两个 Web 服务和调用 Web 服务的网站,分别有两个 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>
它具有以下元素:
Clear - 它删除对继承的节和节组的所有引用。
Remove - 它删除对继承的节和节组的引用。
Section - 它定义配置节处理程序和配置元素之间的关联。
Section group - 它定义配置节处理程序和配置节之间的关联。
应用程序设置
应用程序设置允许存储应用程序范围的名称-值对以供只读访问。例如,您可以定义自定义应用程序设置如下所示:
<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>
连接字符串
连接字符串显示网站可用的数据库连接字符串。例如:
<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 元素指定 ASP.NET 配置节的根元素,并包含配置 ASP.NET Web 应用程序并控制应用程序行为方式的配置元素。
它包含在常用应用程序中需要调整的大多数配置元素。该元素的基本语法如下所示:
<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" />
托管环境
它定义托管环境的配置设置。基本语法如下所示:
<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
它配置用于加密和解密表单身份验证 Cookie 数据的密钥。
它还允许配置验证密钥,该密钥对视图状态数据和表单身份验证票证执行消息身份验证检查。基本语法为:
<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>
页面
它提供特定于页面的配置。基本语法为:
<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
它提供客户端脚本的共享位置的名称。基本语法为:
<webControls clientScriptsLocation="String" />
WebServices
这配置 Web 服务。