随笔 - 136  文章 - 0  评论 - 36  阅读 - 17万 

随笔分类 -  ASP.NET 3.5核心编程学习笔记

ASP.NET 3.5核心编程学习笔记(58):利用页面方法来进行远程调用
摘要:页面方法只是页面代码类中所暴露的带有WebMethod特性的公共静态方法。页面方法和支持AJAX的Web服务的运行时引擎几乎相同。使用页面方法,我们不用创建和发布服务。页面方法的定义 在页面代码类中定义公共静态方法,并为其添加WebMethod特性,便会将ASP.NET AJAX页面转化为Web服务:public class TimeServicePage : System.Web.UI.Page{ [WebMethod] public static DateTime GetTime() { return DateTime.Now; }} 我们可以在页面方法中使用任何数据类型,所有类型在调用. 阅读全文
posted @ 2011-05-04 15:15 辛勤的代码工 阅读(535) 评论(2) 推荐(0) 编辑
ASP.NET 3.5核心编程学习笔记(56):AJAX Web Service的调用
摘要:AJAX模型基于两个层次--客户端应用程序层和服务器应用程序层。在这种模型下,客户端层向服务器层发送请求,而服务器层向客户端层返回响应。服务器端点通过URL标识,并通过源(feed)(通常为JSON[JavaScript Object Notation]数据流)向客户端暴露数据。服务器层只是一个接收调用并将其转发给应用程序业务逻辑层的外观。下图描绘了整个模型: 为使ASP.NET AJAX页面能够调用远程服务,该服务必须满足几点要求,其中最关键的一点与端点和底层平台的位置有关。支持AJAX的服务必须位于调用者所处的域中。这意味着该服务必须是ASP.NET XML Web服务(.asmx端点). 阅读全文
posted @ 2011-05-04 12:14 辛勤的代码工 阅读(680) 评论(0) 推荐(0) 编辑
ASP.NET 3.5核心编程学习笔记(55):自定义扩展程序控件的创建
摘要:ASP.NET并没有包含对扩展程序的具体实现。然而,它定义了供所有自定义扩展程序和ACT中所有扩展程序使用的基类ExtenderControl。我们可通过该类创建自己的扩展程序。但并不建议这样做,因为利用ACT库中的扩展程序更简便易行。 下面的代码给出了“焦点扩展程序”控件的源代码,这个简单的扩展程序能为目标控件添加高亮行为,以便在该控件获得焦点时更改其外观:using AjaxControlToolkit;...namespace Core35{ [TargetControlType(typeof(Control)] [ClientScriptResource("Core35.Fo 阅读全文
posted @ 2011-05-03 21:03 辛勤的代码工 阅读(397) 评论(0) 推荐(0) 编辑
ASP.NET 3.5核心编程学习笔记(54):UpdatePanel
摘要:UpdatePanel控件是泛化的控件容器,负责刷新所有子控件,而不需要回发整个页面。这就是所谓的“部分呈现(partial rendering)”。使用该控件,我们可以包装现有页面的局部,或用ASP.NET 2.0编程模型开发的新页面的局部。在可更新区域中发起的所有回发,都会由UpdatePanel控件管理,并且只更新该区域的控件。UpdatePanel控件 UpdatePanel控件是应用AJAX最简单的方式,它允许我们向现有的基于ASP.NET 2.0编程模型编写的网站添加AJAX功能。我们除了要理解UpdatePanel控件的语法和语义外,不必学习其他技术。 部分呈现与传统的回发有何. 阅读全文
posted @ 2011-05-03 16:41 辛勤的代码工 阅读(1451) 评论(0) 推荐(0) 编辑
ASP.NET 3.5核心编程学习笔记(53):脚本管理器控件
摘要:ASP.NET AJAX服务器基础结构中最重要的控件包括ScriptManager(脚本管理器)及ScriptManagerProxy(脚本管理器代理)。每个ASP.NET AJAX页面中只有一个ScriptManager控件的实例。如果ASP.NET页面中不包含ScriptManager控件,则无法启用任何AJAX功能。ScriptManagerProxy控件只能用在母版页环境中,用于引用内容页中的源脚本管理器。 ScriptManager控件用于管理和分发脚本资源,使客户端脚本能够使用Microsoft AJAX框架。使用下面的代码能在页面中添加脚本管理器:<asp:ScriptMa 阅读全文
posted @ 2011-05-03 01:39 辛勤的代码工 阅读(535) 评论(0) 推荐(0) 编辑
ASP.NET 3.5核心编程学习笔记(52):Microsoft AJAX JavaScript类库
摘要:Microsoft AJAX库是用JavaScript编写的,但带有浓厚的面向对象色彩。JavaScript语言支持对象,也允许创建自定义的对象。但由于它本身没有对象继承的,因而它不支持完整的面向对象机制。ASP.NET AJAX添加了一些类型系统和命名空间与继承的概念,将JavaScript语言提高到了另一个层次。 这些扩展保存在一些.js文件中。这些文件没有以独立文件的形式随ASP.NET的安装而部署到Web服务器上,它们以资源的形式嵌入在ASP.NET AJAX程序集(system.web.extensions)中。JavaScript语言扩展 JavaScript语言带有一些内建对象. 阅读全文
posted @ 2011-05-02 22:37 辛勤的代码工 阅读(508) 评论(0) 推荐(0) 编辑
ASP.NET 3.5核心编程学习笔记(51):AJAX基础
摘要:out-of-band调用模型 使用AJAX功能在Web页面中发挥作用的关键因素是发送out-of-band HTTP请求。out-of-band是指通过独立于浏览器的组件发出HTTP请求。out-of-band调用由HTML页面事件通过脚本触发,随后会由代理组件处理。在AJAX框架中,这个代理组件基于XMLHttpRequest对象。 XMLHttpRequest是浏览器对象,它可以通过JavaScript脚本进行调用。XMLHttpRequest能够向指定的URL发送HTTP请求,并等待它被处理,该过程即能以同步方式执行,也能以异步方式执行。当响应数据就绪后,这个代理会调用用户定义的Jav 阅读全文
posted @ 2011-05-02 12:23 辛勤的代码工 阅读(337) 评论(1) 推荐(0) 编辑
ASP.NET 3.5核心编程学习笔记(50):ASP.NET的安全性之Membership与角色管理
摘要:Membership类 以Membership类的静态方法为中心的成员管理编程接口封装了凭据和其他用户信息的获取、比较操作细节。 Membership类默认使用的提供程序将用户信息以预定义的格式存储在SQL Express数据库中。如果希望使用自定义的数据存储(如个人数据库),我们可以创建自定义的提供程序,并将其插入到应用程序中。Membership类的编程接口 下表列出了Membership类的属性: Provider属性返回当前使用的成员资格提供程序的引用,该提供程序是在配置文件中选定的。ASP.NET自带了两个预定义的提供程序,分别面向SQL Server Express和活动目录。我们 阅读全文
posted @ 2011-05-01 22:34 辛勤的代码工 阅读(521) 评论(0) 推荐(0) 编辑
ASP.NET 3.5核心编程学习笔记(49):ASP.NET安全性之Forms身份验证
摘要:使用Forms身份验证 实际的Internet应用程序很少采用Windows和Passport身份验证方式。 如果要实现采集用户凭据并在内部进行处理,Forms身份验证是最理想的选择。为建立支持Forms身份验证的ASP.NET应用程序,需要这样设置web.config文件:<system.web> <authentication mode="Forms"> <forms loginUrl="login.aspx" /> </authentication> <authenciation> < 阅读全文
posted @ 2011-05-01 15:53 辛勤的代码工 阅读(553) 评论(0) 推荐(1) 编辑
ASP.NET 3.5核心编程学习笔记(48):ASP.NET的安全性之Windows身份验证与Passport身份验证
摘要:ASP.NET身份验证方法 基于被请求资源的类型,IIS可能会自己处理。如果该资源需要ASP.NET处理,IIS会将该请求连同已验证(或匿名)用户的安全令牌一起交给ASP.NET。 ASP.NET支持3种验证方法:Windows、Passport、Forms。还有一种选项是None,即ASP.NET本身不会试图执行身份验证,而完全依赖于IIS之前执行的身份验证。在这种情况下,匿名用户也能连接,并可通过ASP.NET默认帐户访问资源。 我们可通过应用程序的web.config文件根节点下的<authentication>区段来选择ASP.NET身份验证机制。子目录的身份验证模式继承于 阅读全文
posted @ 2011-05-01 11:31 辛勤的代码工 阅读(721) 评论(0) 推荐(0) 编辑
ASP.NET 3.5核心编程学习笔记(47):ASP.NET的安全性之安全性上下文与信任级别
摘要:威胁来自何方 下表列出了最常见的几种Web攻击: 从根本上讲,不论用户向浏览器的标记中插入何种数据,都有可能遭受代码注入攻击(即,SQL注入和XSS的各种变体)。此外,敏感数据不应被传输,而必须安全地保存在服务器上。ASP.NET安全性上下文 从应用程序的角度来看,安全性主要是对用户进行身份验证,以及授予其对系统资源的操作权限。ASP.NET结合了IIS、.NET Framework和操作系统的底层安全服务,提供了身份验证和授权机制。ASP.NET应用程序整体的安全性上下文由以下3个级别构成: 1. IIS级将有效的安全令牌与请求的发送者关联(该安全令牌取决于当前IIS身份验证机制)。 2. 阅读全文
posted @ 2011-05-01 10:38 辛勤的代码工 阅读(713) 评论(0) 推荐(1) 编辑
ASP.NET 3.5核心编程学习笔记(46):HTTP模块的编写
摘要:对于每个运行中的应用程序,ASP.NET都维护着一个HttpApplication对象的池,特定的请求会逐一由池中的实例处理。这些对象基于定义在global.asax的类创建,如果未定义global.asax,则基于HttpApplication类创建。负责处理请求的HttpApplication对象的最终目标是获取HTTP处理程序。 在获取目标HTTP处理程序前,HttpApplication对象要使请求流经HTTP模块的管道。HTTP模块是实现IHttpModule接口的.NET Framework类,用于筛选请求的中原始数据。HTTP模块会基于每个应用程序的web.config文件进行. 阅读全文
posted @ 2011-04-30 15:43 辛勤的代码工 阅读(543) 评论(0) 推荐(0) 编辑
ASP.NET 3.5核心编程学习笔记(45):HTTP处理程序之高级编程
摘要:HTTP处理程序的用户十分明确:改变某类资源的处理方式,并将其返回给用户。我们可以通过处理程序基于运行时条件或某种形式的逻辑对传统资源进行筛选,还可使HTTP处理程序以异步方式来返回特定的页面或资源。 对于HTTP处理程序来说,注册是一个关键步骤,它为ASP.NET提供有关处理程序的信息。但我们都需要修改应用程序的web.config文件,以便为ASP.NET应用程序提供处理程序的信息。 通过ASHX扩展和处理程序编程模型,我们可以避免修改web.config。部署新的HTTP处理程序只需要将对应的文件复制到应用程序的某个文件夹下即可。以ASHX资源的形式处理程序 ashx文件包含一个特殊的. 阅读全文
posted @ 2011-04-29 23:17 辛勤的代码工 阅读(444) 评论(0) 推荐(0) 编辑
ASP.NET 3.5核心编程学习笔记(44):HTTP处理程序的编写之从数据库加载图像
摘要:数据库管理系统往往都提供二进制大对象的支持。当然,二进制对象字段不一定非要存储图像,它还可以存储媒体文件或长文本文件或其他二进制内容。 下面以从数据库加载员工相片为例,展示一个HTTP处理程序的例子:public class DbImageHandler : IHttpHandler{ public void ProcessRequest(HttpContext ctx) { //从查询字串中获取员工ID int id = -1; bool reaust = Int32.TryParse(ctx.Request.QueryString["id"], out id); //如 阅读全文
posted @ 2011-04-29 21:38 辛勤的代码工 阅读(332) 评论(0) 推荐(0) 编辑
ASP.NET 3.5核心编程学习笔记(43):HTTP处理程序的编写之图片查看器
摘要:图片查看器处理程序 为加快处理速度,IIS会直接处理Web应用程序中的某些静态资源,而不会调用ISAPI扩展。这些静态文件包括图像和HTML文件。如果从浏览器直接请求gif或jpg文件,IIS会获取指定的资源,正确设置响应缓冲的内容类型,并将其输出成文件的字节流. 如果浏览器地址指向包含多个图像的虚拟目录呢?在这种情况下,IIS无法识别文件夹的内容,而可能只返回文件的列表。 那么如何实现指向该虚拟目录地址,在浏览器中显示该目录下图片的预览呢?图片查看器HTTP处理程序的设计 首先,需要确定如何使IIS知道我们的意图?可以通过在文件夹名称后追加一个特定的端点,使IIS将请求传给ASP.NET,由 阅读全文
posted @ 2011-04-29 18:02 辛勤的代码工 阅读(457) 评论(0) 推荐(0) 编辑
ASP.NET 3.5核心编程学习笔记(42):HTTP处理程序的编写之建立数据报表
摘要:如果要让ASP.NET以某种非标准的方式处理请求,我们可以编写自定义的HTTP处理程序。通过编写处理程序,用户可以通过Web调用各种功能。如,我们可以实现单击计数器和各种图像处理(包括图像的动态生成、服务器端缓存、防止图像盗链)。 HTTP处理程序能够以同步方式工作,也能以异步方式工作。 常规的ISAPI扩展和筛选器应在IIS元库中注册。如果希望HTTP处理程序参与进处理Web请求的HTTP管道,则要在web.config文件中注册它。它的使用方式与ISAPI扩展类似,可以直接通过URL进行调用。IHttpHandler接口 HTTP处理程序是实现IHttpHandler接口的类。更准确的讲. 阅读全文
posted @ 2011-04-28 22:42 辛勤的代码工 阅读(473) 评论(0) 推荐(0) 编辑
ASP.NET 3.5核心编程学习笔记(41):HTTP处理程序与HTTP模块
摘要:HTTP处理程序是真正负责处理请求的组件,它实现了IHttpHandler接口。该接口的ProcessRequest方法是控制请求处理的“中央控制台”。如,Page类实现IHttpHandler接口,它的ProcessRequest方法负责加载和保存视图状态,还负责引发一些常见的事件(Init、Load、PreRender等)。 ASP.NET会将每个传入的HTTP请求映射到相应的HTTP处理程序。HTTP处理程序工厂创建这些处理程序的实例对象(如,PageHandlerFactory类能解析被请求的aspx资源的源代码,编译后返回代表相应页面的类实例)。 HTTP模块是实现IHttpMod. 阅读全文
posted @ 2011-04-28 00:43 辛勤的代码工 阅读(585) 评论(0) 推荐(0) 编辑
ASP.NET 3.5核心编程学习笔记(40):页面缓存
摘要:ASP.NET页面输出缓存功能允许我们对页面的响应进行缓存,这样,无需执行整个页面,后续的请求也会被处理,即只返回缓存的输出。输出的缓存分两个级别:页面的整个和局部。页面缓存很智能,能够基于请求的URL、查询字符串、参数或自定义字符串来保持输出。 输出缓存的配置非常方便,即可通过@OutputCache指令以声明方式配置,也可通过HttpCachePolicy类以编程方式进行配置。 页面输出缓存只针对匿名内容。对缓存的页面请求在IIS6.0下,由IIS直接处理,在IIS5.0下,由ASP.NET工作进程处理。不论哪种情况,页面请求不会进入ASP.NET管道,而只有在管道中才能进行身份验证,因. 阅读全文
posted @ 2011-04-27 01:02 辛勤的代码工 阅读(703) 评论(1) 推荐(1) 编辑
ASP.NET 3.5核心编程学习笔记(39):SQL Server缓存依赖
摘要:针对SQL Server的缓存依赖项 在ASP.NET 2.0及更高版本中,有一个专用的类SqlCacheDependency,该类继承于CacheDependency,支持SQL Server表的依赖项。它兼容于MSDE、SQL Server 7.0和SQL Server的后续版本。数据库依赖项的内幕 时至今日,除SQL Server 2005及更高版本外,没有哪个数据库本身能够检测更改的发生。这表明:对于SQL Server 7.0、SQL Server 2000和非SQL Server数据库,必须创建数据库级的基础结构,以便对表的更改做出提示,允许它们被捕获,并将更改通知给ASP.NET 阅读全文
posted @ 2011-04-26 00:15 辛勤的代码工 阅读(619) 评论(0) 推荐(0) 编辑
ASP.NET 3.5核心编程学习笔记(38):自定义缓存依赖
摘要:自定义缓存依赖项的设计 从ASP.NET 2.0开始,CacheDependency类是可继承的,即我们能够从它派生出自己的类,实现通过外部的事件源使缓存项失效的机制。基类CacheDependency的扩展 为能将派生类整合到现有的ASP.NET缓存基础结构中,并对其提供充分的支持,相对于ASP 1.x版本,CacheDependency类加入了许多公共成员和受保护成员。详见下表: 自定义依赖项要依靠其父类与Cache对象进行交互。CacheDependency的派生类会调用NotifyDependencyChanged方法,以便通知基类依赖项已被更改。作为响应,基类会更新HasChange 阅读全文
posted @ 2011-04-25 23:01 辛勤的代码工 阅读(685) 评论(0) 推荐(0) 编辑

点击右上角即可分享
微信分享提示