2012年11月21日

摘要: 在使用.NET Ajax控件的时候,有时候我们会在HTML页面的source里发现SciptManager会产生如下的请求:这个时候如果在IIS6/7里面设置了Request Filtering,拒绝带双横线--的请求,就会导致此Ajax功能异常。之所以要对double-hyphen设置这样的deny规则,是因为在SQL注入里,双横线可以用来注释SQL语句的条件判断,这样导致非法的SQL语句可以执行。为了解决这个问题,可以针对带特定的extension后缀的页面设置该规则,而对.axd不设置该规则。在IIS7.5里,可以视作已经集成了用在IIS6上的URLScan的Rule功能,所以可是实现这 阅读全文
posted @ 2012-11-21 10:30 李志鹏 阅读(165) 评论(0) 推荐(0) 编辑

2012年5月5日

摘要: 1.首先将JS文件ASP.NET custom control空间的DLL工程里面,将类型选择为Embedded resource2. 假设欲添加的JS文件是AjaxEnabled.js,而这个DLL工程的Assembly名字是PassTextBox,那么我们应该打开这个DLL工程的AssemblyInfo文件,添加如下attribute:[assembly: System.Web.UI.WebResource("PassTextBox.AjaxEnabled.js","text/JavaScript")]3. 当在DLL工程里面需要引用到这个JS文件的 阅读全文
posted @ 2012-05-05 12:00 李志鹏 阅读(575) 评论(0) 推荐(0) 编辑

2012年5月3日

摘要: 首先假设有如下的继承于Sys.UI.Control的JS代码,我们期望将其封装在一个Custom Control里面,即以DLL的形式在多个application里面使用:///<reference name="MicrosoftAjax.js"/>Type.registerNamespace("AjaxEnabled");AjaxEnabled.PassTextBox = function (element) { AjaxEnabled.PassTextBox.initializeBase(this, [element]); this._w 阅读全文
posted @ 2012-05-03 00:44 李志鹏 阅读(297) 评论(0) 推荐(0) 编辑

2012年5月1日

摘要: 有如下代码: 1 /// <reference name="MicrosoftAjax.js"/> 2 3 Type.registerNamespace("AjaxEnabled"); 4 5 //create constructor 6 AjaxEnabled.PassTextBox = function(element) { 7 AjaxEnabled.PassTextBox.initializeBase(this, [element]); 8 9 this._weakCssClass = null;10 this._mediumCssC 阅读全文
posted @ 2012-05-01 21:37 李志鹏 阅读(479) 评论(0) 推荐(0) 编辑
摘要: 有代码如下: 1 /// <reference name="MicrosoftAjax.js"/> 2 Type.registerNamespace("AjaxEnabled"); 3 4 AjaxEnabled.PasswordStrengthComponent = function () { 5 AjaxEnabled.PasswordStrengthComponent.initializeBase(this); 6 }; 7 8 AjaxEnabled.PasswordStrengthComponent.prototype = { 9 阅读全文
posted @ 2012-05-01 00:37 李志鹏 阅读(465) 评论(0) 推荐(0) 编辑

2011年6月14日

摘要: 我们知道ASP.NET Page的生命周期实际上是ASP.NET Application的生命周期的一部分。这个周期经历了HTTP Module => HTTP Handler =>ASP.NET Page => Http Module这样一个过程。如果我们能更好地掌握这样一个过程,那么对单个ASP.NET Page的生命周期也能更好地了解:下面介绍如何编写一个简单的ASP.NET 页面和一个简单的HttpModule,对MSDN里提到的ASP.NET的生命周期进行验证1. 首先使用Visual Studio 2010建立一个空的ASP.NET网站 (ASP.NET 4.0) 阅读全文
posted @ 2011-06-14 12:57 李志鹏 阅读(1118) 评论(1) 推荐(2) 编辑

2011年4月14日

摘要: 1. 在WinDbg内载入psscor2.dll2. 定位到出现问题的语句,查找其是否来自debug的module: 这里可以看到出现问题的语句的IP是204d188f3.执行!ip2md语句查找它属于哪个模块: 此时可以发现其所属的模块为1b1c60804. 执行!dumpmodule 1b1c6080: 可见这个模块来自哪个dll5. 执行!finddebugmodules 可见这个assembly正好是not built release6. 另外,对于要查看整个dump是否运行在debug模式下,可以执行命令!finddebugtrue 阅读全文
posted @ 2011-04-14 14:56 李志鹏 阅读(737) 评论(0) 推荐(0) 编辑

2011年4月12日

摘要: 在使用Netmon在Server端抓包以后,可以使用time-delta值观察响应缓慢在哪一个环节:这里观察的主要对象是w3wp.exe,因为w3wp.exe是客户端和IIS server交互的进程,同时也是IIS server和后台数据库交互的进程。在network monitor深入到TCP port对TCP port的时候,就能利用time-delta观察到延迟究竟是多少了。 阅读全文
posted @ 2011-04-12 16:01 李志鹏 阅读(1171) 评论(1) 推荐(1) 编辑

2011年4月7日

摘要: 1. 使用.sympath xxx或者.symfix确定symbol的路径2. 执行.loadby sos.dll mscorwks或者.load (psscor2.dll的路径)3. 执行!threadpool查看这个hang是由于cpu利用率高还是由于死锁这样的原因造成的。 可见CPU利用率并不高。4. 执行 !runaway 查看哪一个线程占用CPU时间最多,检查线程13,23和36 5. 切换到线程13,执行!clrstack: 可以推断是由于Debug.Assert判定失败,弹出了对话框,导致整个程序hang住。6. 切换到线程23执行 !clrstack: 可见程序执行到Monit 阅读全文
posted @ 2011-04-07 14:36 李志鹏 阅读(2613) 评论(0) 推荐(0) 编辑

2011年3月25日

摘要: 在IIS7里,应用程序池会有Process Identity的设置,同时在网站设置的Basic Setting里,也会有Connect As的选项。那么他们是什么关系呢?应用程序池的Process Identity的设置,指的是应用程序池以什么样的身份运行;而Connect As里的身份设置,指的是网站运行IIS去访问相应物理路径上的资源的时候,使用的是什么样的身份去访问这个资源的。在网站的Connect As里面,默认勾选的是Application User (pass-through authenticatoin),这个时候系统去获取物理路径上的资源的时候,将会使用应用程序池的身份,即Pr 阅读全文
posted @ 2011-03-25 11:08 李志鹏 阅读(393) 评论(0) 推荐(0) 编辑

导航