ASP.NET 底层技术 一
2013-01-03 21:03 y-z-f 阅读(919) 评论(1) 编辑 收藏 举报如果你是一个能把你好奇的问题都能解决的人的话,我相信这篇文章你应该不需要阅读的。因为你可能早已研究过这方面,当然看了也无妨。可以提出对我的建议的同时也可以巩固自己的知识。
一、我们将会研究什么?
这里我所说的底层不要误解,不可能说的我会让你去掌握http/https协议甚至是tcp/udp ip 这些协议。我们探讨的只是你我在正常的编码中根本没有考虑过的问题,但是却很关键而且对于你我感觉可能都是那么的底层,无需考虑。当然我也相信有人看完之后会觉得根本没有必要,我知道vs会帮你把这些都做好。所以这里我要申明一下的是我只是简单的介绍这些知识。如果对你有用,那么自然就是我的目的,如果对于你毫无作为。那你可以关闭这个页面。
二、开始之路
现在我们将要进入到一个我们所忽略而又重要的一部分,掌握了它那么ASP.NET的前台文件后台文件和自定义控件等将会游刃有余。
1.@Page
相信下面这些一定很眼熟吧
<%@Page Language="C#" Inherits="/* Class Name */" CodeBehind="/* Code File Path */" AutoEventWireup="true" %>
或许你可以解释里面一部分的意思,但是你有没有真真的了解过他们呢?如果你没有了解或者你正在了解那么请继续往下看,我将会全面地介绍,并以每个标签进行解析。
- Async : 使页成为异步处理程序(异步大家都应该理解,当然后面的处理程序(.ashx)也一定使用过,而这里可以暂时理解为两者的结合)
- AsyncTimeOut : 当处理异步任务时,使用的超时时间间隔(以秒为单位),默认值为45秒(该值必须为整数)
- AspCompat : 如果设置为true,则允许在单线程单元线程上执行页。这允许页调用STA组建,如果使用 VB 6.0 开发的组件,并且将该属性设置为true还允许页调用 COM+ 1.0版组件,该组件可以访问非托管的 ASP 内置对象,可以通过 ObjectContext 对象或者 OnStartPage 方法访问他们。(默认值为 false)
注:如果设置为 true 将导致页的性能降低 - AutoEventWireup : 设置页的事件是否自动绑定。true 为使用,false为不启动(默认为启用)(其实就是将页面的page_load事件和后台绑定起来)
- Buffer : 是否启用 HTTP 响应缓存。true为启用,false为不启用(默认为 false )
- ClassName : 字符串类型,指定在请求页时将自动进行动态编译的页的类名。此值可以是任何有效的类名,并且可以包括类的完整命名空间。如果未指定该属性的值,则已编译页的雷鸣将基于页的文件名。
- ClientTarget : 指示 ASP.NET 服务器控件应该为其呈现内容的目标用户代理(通常是web浏览器,比如 IE),该属性的值可以为配置文件的<clientTarger>节中定义的任何有效别名
- CodeBehind : 指定包含与页关联的类的已编译文件的名称。该属性不能在运行时使用。
注:提供此属性是为了与以前版本的ASP.NET的兼容,已实现隐藏功能。在ASP.NET 2.0 版本中,应改用CodeFile属性指定该源文件的名称,同时使用Inherits属性指定该类的完全限定名称。 - CodeFile : 指定指向页引用的代码隐藏文件的路径。此属性与Inherits 属性一起使用可以讲代码隐藏源文件与网页关联。此属性仅对编译的页有效。
- CodeFileBaseClass
指定页的基类及其关联的代码隐藏类的路径。此属性是可选的,但如果使用此属性,则必须同时使用 CodeFile 属性。如果希望实现以下共享方案,可使用该属性:在该共享方案中,您在基类中定义通用字段(可以选择性地定义关联事件)以引用在网页中声明的控件。出于 ASP.NET 代码生成模型的缘故,如果您在基类中定义字段时没有使用该属性,则编译时将为在网页中(在单独的分部类存根中)声明的控件生成新的成员定义,而您希望的方案将无法生效。但是,如果您使用 CodeFileBaseClass 属性将基类与页相关联,并且您的分部类(其名称分配给 Inherits 属性,并且其源文件由 CodeFile 属性引用)是从该基类继承的,则该基类中的字段在代码生成之后将能够引用页上的控件。
- CodePage
指示用于响应的编码方案的值。该值是一个用作编码方案 ID 的整数。有关可能的 CodePage ID 的列表。
- CompilationMode
设置是否应使用指定多个枚举选项之一的字符串来编译页。默认值为 Always,因此,默认情况下编译 .aspx 页。有关详细信息。
- CompilerOptions
包含用于编译页的编译器选项的字符串。在 C# 和 Visual Basic 中,这是编译器命令行开关的序列。有关编译器选项的更多信息。
- ContentType
将响应的 HTTP 内容类型定义为标准的 MIME 类型。支持任何有效的 HTTP 内容类型字符串。有关可能值的列表。
- Culture
指示页的区域性设置。该属性的值必须是有效的区域性 ID。注意,LCID 和 Culture 属性是互相排斥的;如果使用了其中一个属性,就不能在同一页中使用另一个属性。有关可能的区域性值的更多信息。
- Debug
指示是否应使用调试符号编译该页。如果应使用调试符号编译该页,则为 true;否则为 false。由于此设置影响性能,因此只应在开发期间将此属性设置为 true。
- Description
提供该页的文本说明。ASP.NET 分析器忽略该值。
- EnableEventValidation
在回发和回调方案中启用事件验证。如果验证事件,则为 true;否则为 false。默认值为 true。
- EnableSessionState
定义页的会话状态要求。如果启用了会话状态,则为 true;如果可以读取会话状态但不能进行更改,则为 ReadOnly;否则为 false。默认值为 true。这些值是不区分大小写的。
- EnableTheming
指示是否在页上使用主题。如果使用主题,则为 true;否则为 false。默认值为 true。
- EnableViewState
指示是否在页请求之间保持视图状态。如果要保持视图状态,则为 true;否则为 false。默认值为 true。
- EnableViewStateMac
指示当页从客户端回发时,ASP.NET 是否应该对页的视图状态运行计算机身份验证检查 (MAC)。如果应该对视图状态运行 MAC 检查,则为 true;否则为 false。默认值为 false。
注:视图状态 MAC 是隐藏变量的加密版本,当某页被发送到浏览器时,该页的视图状态永久保持到该变量中。当您将此属性设置为 true 时,将检查加密的视图状态以验证它在客户端未被篡改。注意,将此属性设置为 true 会影响性能,因为在页的每次往返行程中,都必须加密和解密变量值。
- ErrorPage
定义在出现未处理页异常时用于重定向的目标 URL。
- Explicit
确定是否使用 Visual Basic Option Explicit 模式来编译页。如果启用了 Visual Basic 显式编译选项,且所有变量必须使用 Dim、Private、Public 或 ReDim 语句来声明,则为 true;否则为 false。默认值为 false。
注:除了 Visual Basic,所有其他语言都忽略该属性。此外,该选项在 Machine.config 配置文件中被设置为 true。
- Inherits
定义供页继承的代码隐藏类。它可以是从 Page 类派生的任何类。它与 CodeFile 属性(包含指向代码隐藏类的源文件的路径)一起使用。
- Language
指定在对页中的所有内联呈现(<% %> 和 <%= %>)和代码声明块进行编译时使用的语言。值可以表示任何 .NET Framework 支持的语言,包括 Visual Basic、C# 或 JScript。每页只能使用和指定一种语言。
- LCID
定义 Web 窗体页的区域设置标识符。
注:区域设置标识符是一个 32 位值,该值唯一地定义某个区域设置。除非您使用该属性为 Web 窗体页指定不同的区域设置,否则 ASP.NET 使用 Web 服务器默认的区域设置。注意,LCID 和 Culture 属性是互相排斥的;如果使用了其中一个属性,就不能在同一页中使用另一个属性。
- LinePragmas
确定运行库是否应在源代码中生成行杂注。这些是编译器选项,调试工具通常使用这些选项来标记源文件中的特定位置。如果应该生成行杂注,则为 true;否则为 false。
- MaintainScrollPositionOnPostback
指示在回发后是否将用户返回到客户端浏览器中的同一位置。如果应该将用户返回到同一位置,则为 true;否则为 false。默认值为 false。
注:开发人员可以通过设置 Web.config 文件的 <pages> 元素上的 maintainScrollPostitionOnPostback 属性(注意,此属性在配置文件中是区分大小写的),为所有页定义该属性。
- MasterPageFile
设置内容页的母版页或嵌套母版页的路径。支持相对路径和绝对路径。
- ResponseEncoding
指示用于包含页内容的 HTTP 响应的编码方案的名称。分配给该属性的值是有效的编码名称。有关可能的编码名称的列表,请参见 Encoding 类。您也可以调用 GetEncodings 方法来获取可能的编码名称和 ID 的列表。
- SmartNavigation
指示页是否支持 Internet Explorer 5.5 或更高版本的智能导航功能。如果启用了智能导航,则为 true;否则为 false。默认值为 false。
您也可以在代码中设置页的 SmartNavigation 属性 (Property),但通常应该将属性 (Attribute) 与 @ Page 指令一起使用来设置该属性 (Property)。有关该功能如何改进用户在网页上的导航体验的更多信息,请参见 SmartNavigation 属性。
- Src
指定包含链接到页的代码的源文件的路径。在链接的源文件中,可以选择将页的编程逻辑包含在类中或代码声明块中。
可以使用 Src 属性将生成提供程序链接到页。有关更多信息,请参见 BuildProvider 类。另外,在低于 2.0 版的 ASP.NET 中,Src 属性是另一种将代码隐藏文件链接到页的方法。在 ASP.NET 2.0 中,将代码隐藏源文件链接到页的首选方法是使用 Inherits 属性来指定类,并使用 CodeFile 属性来指定该类的源文件的路径。
- Strict
指示应使用 Visual Basic OptionStrict 模式来编译页。如果启用了 Option Strict,则为 true;否则为 false。默认值为 false。
注:除了 Visual Basic,所有其他语言都忽略该属性。
- StyleSheetTheme
指定在页上使用的有效主题标识符。如果设置了 StyleSheetTheme 属性,则单独的控件可以重写主题中包含的样式设置。这样,主题可以提供站点的整体外观,同时,利用 StyleSheetTheme 属性中包含的设置可以自定义页及其各个控件的特定设置。
- TargetSchema
指定用于验证页内容的方案的名称。此属性仅起描述性的作用,而不会真正执行验证;分析器将忽略此属性。
- Theme
指定在页上使用的有效主题标识符。如果设置 Theme 属性时没有使用 StyleSheetTheme 属性,则将重写控件上的单独的样式设置,允许您创建统一而一致的页外观。
- Title
指定在响应的 HTML <title> 标记中呈现的页的标题。也可以通过编程方式将标题作为页的属性来访问。有关详细信息,请参见 Title 属性。
- Trace
指示是否启用跟踪。如果启用了跟踪,则为 true;否则为 false。默认值为 false。有关更多信息,请参见 ASP.NET 跟踪。
- TraceMode
指示当启用跟踪时如何为页显示跟踪消息。可能的值为 SortByTime 和 SortByCategory。当启用跟踪时,默认值为 SortByTime。
- Transaction
指示在页上是否支持事务。可能的值有 Disabled、NotSupported、Supported、Required 和 RequiresNew。默认值为 Disabled。
- UICulture
指定用于页的用户界面 (UI) 区域性设置。支持任何有效的 UI 区域性值。
- ValidateRequest
指示是否应发生请求验证。如果为 true,请求验证将根据具有潜在危险的值的硬编码列表检查所有输入数据。如果出现匹配情况,将引发 HttpRequestValidationException 异常。默认值为 true。
该功能在计算机配置文件 (Machine.config) 中启用。可以在应用程序配置文件 (Web.config) 中或在页上将该属性设置为 false 来禁用该功能。
注:该功能有助于减少对简单页或 ASP.NET 应用程序进行跨站点脚本攻击的风险。如果应用程序不能正确验证用户输入,则可能会受到多种类型的格式错误的输入的攻击,包括跨站点脚本攻击和 Microsoft SQL Server 注入式攻击。应该仔细地评估应用程序中所有形式的输入,并确保对它们进行了正确地验证和编码,或者确保应用程序在处理数据或将信息发送回客户端之前已退出。除此之外,别无它法。
- ViewStateEncryptionMode
使用三个可能的枚举值来确定如何加密视图状态:Auto、Always 或 Never。默认值为 Auto,表示如果单个控件请求进行加密,将加密视图状态。
- WarningLevel
指示您希望编译器将警告视为错误(从而中止对页进行编译)的编译器警告等级。可能的警告等级为 0 到 4。
-
未完继续