随笔分类 -  00.ASP.NET

摘要:课程简介 * 正则表达式是软件开发必须掌握的一门语言,掌握后才能很好地理解到它的威力; * 课程采用概念和实验操作 4/6 分隔,帮助大家理解概念后再使用大量的实例加深对概念的理解; * 实例操作是对概念最好的理解,也是学习新语言最有效的办法; * 在课程中也穿插着大量软件开发的技巧和大家分享; * 应该是把晦涩的正则表达式讲解的最生动的课程; * 掌握了正则表达式后,您一定会觉得这是一门最值得掌握的语言。 阅读全文
posted @ 2016-06-21 12:17 Parry 阅读(2072) 评论(7) 推荐(6) 编辑
摘要:在前一篇文章中,主要讨论了使用HTTP基本认证的方法,因为HTTP基本认证的方式决定了它在安全性方面存在很大的问题,所以接下来看看另一种验证的方式:digest authentication,即摘要认证。系列文章列表ASP.NET Web API(一):使用初探,GET和POST数据ASP.NET Web API(二):安全验证之使用HTTP基本认证ASP.NET Web API(三):安全验证之使用摘要认证(digest authentication)摘要认证原理在基本认证的方式中,主要的安全问题来自于用户信息的明文传输,而在摘要认证中,主要通过一些手段避免了此问题,大大增加了安全性。下图为 阅读全文
posted @ 2013-07-05 15:52 Parry 阅读(14360) 评论(21) 推荐(18) 编辑
摘要:在前一篇文章ASP.NET Web API(一):使用初探,GET和POST数据中,我们初步接触了微软的REST API: Web API。我们在接触了Web API的后就立马发现了有安全验证的需求,所以这篇文章我们先来讨论下安全验证一个最简单的方法:使用HTTP基本认证。HTTP基本认证原理在HTTP协议进行通信的过程中,HTTP协议定义了基本认证过程以允许HTTP服务器对WEB浏览器进行用户身份认证的方法,当一个客户端向HTTP服务器进行数据请求时,如果客户端未被认证,则HTTP服务器将通过基本认证过程对客户端的用户名及密码进行验证,以决定用户是否合法。其基本的实现方式是:客户端在用户输入 阅读全文
posted @ 2012-11-09 17:10 Parry 阅读(21710) 评论(29) 推荐(63) 编辑
摘要:概述REST(Representational State Transfer表述性状态转移)而产生的REST API的讨论越来越多,微软在ASP.NET中也添加了Web API的功能。我们看dudu的文章HttpClient + ASP.NET Web API, WCF之外的另一个选择知道了博客园也开始使用了Web API,且在使用Web API Beta版本的时候遇到了这个问题:痴情意外:ASP.NET WebAPI RC 竟然不支持最常用的json传参。我们刚好看看Web API的使用,且看目前的版本有没有解决掉这个问题。而关于ASP.NET Web Forms 4.5的新特性可以参见我之 阅读全文
posted @ 2012-09-27 11:59 Parry 阅读(71874) 评论(35) 推荐(94) 编辑
摘要:在前两篇文章中,我们了解到了ASP.NET Web Forms 4.5四个新特性:强类型数据控件和Bundling、针对HTML5的更新和Unobtrusive Validation。在介绍强类型控件的时候只是简单介绍了下它具有ItemType的属性,可以设置强类型值进行绑定,如果只是引入了这个属性,那么有点像语法糖,没什么实际意义。其实许多园友也发现了在ASP.NET Web Forms 4.5中引入了许多MVC的特性,而Model Binding则是更加像MVC的一个特性了。Model Binding如果用过ObjectDataSource控件,肯定对其SelectMethod有印象,在A 阅读全文
posted @ 2012-09-21 09:40 Parry 阅读(4128) 评论(5) 推荐(3) 编辑
摘要:在前一篇文章中我们介绍了两个新特性:强类型数据控件和Bundling。这次我们再介绍两个新特性:ASP.NET Web Forms 4.5中针对HTML5的更新和Unobtrusive Validation。针对HTML5的更新在ASP.NET Web Forms 4.5中,控件TextBox的TextBoxMode从之前的三个(SingleLine/MultiLine/Password)增加到了16个,详细见MSDN。这样使得做表单类页面的时候,降会大大地降低验证的代码量,提高开发效率,将更多的人力资源放在业务逻辑上。FileUpload控件终于开始支持多文件上传,可以通过AllowMult 阅读全文
posted @ 2012-09-19 12:17 Parry 阅读(3809) 评论(5) 推荐(2) 编辑
摘要:在微软线上发布了Visual Studio 2012后,我们也能清晰地看到ASP.NET Web Forms 4.5中的一些新特性了。今天先看两个新特性:强类型数据控件和Bundling。强类型数据控件在出现强类型数据控件前,我们绑定数据控件时,前台一般使用Eval或者DataBinder.Eval(Container.DataItem,"FieldName")的形式。1<%#DataBinder.Eval(Container.DataItem,"FieldName")%>2<%#Eval("FieldName")% 阅读全文
posted @ 2012-09-18 15:09 Parry 阅读(4067) 评论(4) 推荐(0) 编辑
摘要:在之前的文章MVC3缓存之二:页面缓存中的局部动态中,没有注意到MVC3的版本中对输出缓存进行了修改,园友的评论中提及了此问题,所以又去抽时间看了下局部缓存的解决方案。最后发现在发布的MVC3版本中,新增了一个叫做Partial Page的东西,即可以对载入到当前页面的另外的一个View进行缓存后输出,这与我们之前讨论的局部动态刚好相反了,即之前我们进行这个页面的缓存,然后对局部进行动态输出,现在的解决方案是:页面时动态输出的,而对需要缓存的局部进行缓存处理。查来查去还没有看到局部动态的解决方案,所以我们先看看局部缓存的处理方法。局部缓存(Partial Page)我们先建立一个需要局部缓存. 阅读全文
posted @ 2011-04-11 14:59 Parry 阅读(5835) 评论(6) 推荐(6) 编辑
摘要:在上一篇我们讨论了MVC中使用页面缓存的一些方法,而其中由于页面缓存的粒度太粗,不能对页面进行局部的缓存,或者说,如果我们想在页面缓存的同时对局部进行动态输出该怎么办?下面我们看下这类问题的处理。MVC中有一个Post-cache substitution的东西,可以对缓存的内容进行替换。使用Post-Cache Substitution定义一个返回需要显示的动态内容string的方法。调用HttpResponse.WriteSubstitution()方法即可。示例,我们在Model层中定义一个随机返回新闻的方法。usingSystem;usingSystem.Collections.Gen 阅读全文
posted @ 2011-03-29 11:08 Parry 阅读(6256) 评论(12) 推荐(7) 编辑
摘要:在以前的WebForm的开发中,在页面的头部加上OutputCache即可启用页面缓存,而在MVC3中,使用了Razor模板引擎的话,该如何使用页面缓存呢?如何启用在MVC3中要如果要启用页面缓存,在页面对应的Action前面加上一个OutputCache属性即可。我们建一个Demo来测试一下,在此Demo中,在View的Home目录下的Index.cshtml中让页面输入当前的时间。@{Layout=null;}<!DOCTYPEhtml><html><head><title>Index</title></head>&l 阅读全文
posted @ 2011-03-19 11:15 Parry 阅读(8995) 评论(9) 推荐(10) 编辑
摘要:在前端优化的各种金律铁规中,“减少客户端对资源的请求”都会在其中出现,刚好最近对网站做一些优化,使用了一下Combres组件,有点心得,遂整理成文。园子中也有几篇Combres组件的介绍,如:Combres库学习小结以及部分源码分析和使用Combres 库 ASP.NET 网站优化。可部署时参考起来显得有些简略,所以此文也算对此类文章的补充。配置组件此组件的一些作用和原理在我上面提及的两篇文章中有介绍,可以自行移步至对应的文章中查看。这里还有有作者介绍的一些详细的使用方法。下载Combres组件,下载下来的包里包含了DLL、帮助文件、源码和一些例子,我们现在直接来看如何部署。在下载下来的\Bi 阅读全文
posted @ 2011-01-28 16:44 Parry 阅读(5700) 评论(20) 推荐(5) 编辑
摘要:在前端优化中,js、css等文件的优化一般都是压缩的优化,进行合并、减小体积以达到减小请求的目的。今天发现了一个集成在VS中的压缩插件,使得压缩变得比较快捷。配置方法首先需要去下载Microsoft Ajax Minifier,一路安装就可以,如果VS正在使用,需要重启。在你的web项目上右键,点击卸载项目,使得变成灰色。在卸载的项目上点击编辑,在proj文件的添加配置节点,像下面这样配置节点说明。参考了此博文中的一段:Include属性是需要进行压缩的目录路径并带文件通配符Exclude则是不需要进行压缩的文件路径WebResources是我根目录下的文件夹,可以根据实际项目进行相应的调整A 阅读全文
posted @ 2011-01-24 14:37 Parry 阅读(1858) 评论(1) 推荐(3) 编辑
摘要:无意在网上看到了一份.NET下实现Server Push(服务器推)的源码,断断续续看了两天,难点较多,遂成此文。关于服务器推技术,我们最深刻的体验应该是WebQQ的使用,通过服务器向客户端进行信息推送,而不是客户端去主动取数据(Client Pull)。在AJAX技术大行其道之时,服务器推技术才是未来的主角。AJAX 只是实现了单用户的响应回调,与服务器的异步通讯,但是并不能反映多用户的协同相应。一个页面中同时存在的多个AJAX的异步很可能让用户修改了没有显示 出来的数据,在逻辑上存在数据库事务中“脏读”或者“幻影读”的概念,还没有看到数据,发出下一个请求(当然请求是发送到了别的页面元素,但 阅读全文
posted @ 2010-11-18 14:30 Parry 阅读(4584) 评论(8) 推荐(5) 编辑
摘要:在上篇跨域SSO的实现之一:架构设计中主要谈及了跨域SSO的实现原理,在这篇中主要介绍下此功能的实现。此文章还是对应于第一篇翻译文章的第二部分:Single Sign On (SSO) for cross-domain ASP.NET applications: Part-II - The implementation。今天读了一遍,发现都是对第一篇文章中原理的再解释。并且作者还提供了一个SSOLib.dll,使用此dll可以实现网站SSO的部署。主要实现的原理图而在sso站点中需要实现的方法如下:主要需要去理解下第一篇文章中提到的实现原理就可以了。源码下载 阅读全文
posted @ 2010-11-17 11:15 Parry 阅读(1966) 评论(2) 推荐(1) 编辑
摘要:翻译自CodeProject网站ASP.NET9月份最佳文章:Single Sign On (SSO) for cross-domain ASP.NET applications。翻译不妥之处还望大家多多指导、相互交流。文章分为两部分:架构设计和程序实现,此为第一篇即:架构设计或者叫设计蓝图(Part-I - The design blue print)。:) 简介周一的早晨,当你正在纳闷周末咋就一眨眼过去了并对接下来漫长的一周感到无比蛋疼之时,你收到了一份Email。操蛋的是它既不是微软的offer也不是Google的offer,而是客户发来的一个新需求。他说你们现在帮我们公司做了很多的AS 阅读全文
posted @ 2010-10-28 11:34 Parry 阅读(14835) 评论(36) 推荐(16) 编辑
摘要:HTTP压缩HTTP压缩是在Web服务器和浏览器间传输压缩文本内容的方法。HTTP压缩采用通用的压缩算法如GZIP等压缩HTML、JavaScript或CSS文件。压缩的最大好处就是降低了网络传输的数据量,从而提高客户端浏览器的访问速度。当然,同时也会增加一点点服务器的负担。GZIP是比较常见的一种HTTP压缩算法。压缩测试在部署的IIS 6.0上配置了GZIP压缩,详细的测试结果如下。未开启GZIP压缩前,访问网站首页进行抓包分析。开启GZIP后,清空本地IE缓存,再次访问抓包分析。开启前后,页面大小减小了89213bytes,压缩掉原始大小的87%。当对CSS、JS等文件都开启GZIP压缩 阅读全文
posted @ 2010-10-26 09:20 Parry 阅读(5505) 评论(31) 推荐(7) 编辑
摘要:微软在9月17日中午正式对外公布了ASP.NET平台下的安全漏洞,即Microsoft Security Advisory (2416728)。SecurityFocus上已将此漏洞定义成了"Design Error",那么微软一开始的设计就是错误的,为什么这么说呢?且待我们慢慢来分析。昨天在园友辰的一篇博文:对ASP.NET的最新安全漏洞进一步跟进说明中也看到了对此问题的详细追踪,但上午也只是粗粗浏览,下午细看时总觉文中有些地方略显含糊,所以晚上也就顺带查了些资料,略有所得,不敢独享,遂成此文!微软的态度查看了许多微软官方的说明文档,解释的都比较简单,当然对于这个比较大的 阅读全文
posted @ 2010-09-20 02:31 Parry 阅读(18374) 评论(44) 推荐(10) 编辑
摘要:ISAPI_Rewrite是一个较为好用的URL重写组件,安装和配置都比较简单,防盗链的设置也极其简单。问题如何获取被ISAPI_Rewrite重写后的URL。测试环境:IIS6中使用ISAPI_Rewrite对Default.aspx进行重写,重写后的地址为:Index-After-ReWriter.html。需要获取重写后的地址,即Index-After-ReWriter.html。一些弯路首先想到的就是Request对象,如Request.Url和Request.RawUrl。测试后发现获取到的地址都是Default.aspx。上网找了找ISAPI_Rewrite的处理流程图,找到了下面 阅读全文
posted @ 2010-09-13 15:58 Parry 阅读(5323) 评论(10) 推荐(2) 编辑