02 2012 档案
摘要:现在有两张表,一张手机型号表(PhoneModel),一张手机制造商表(PhoneCompany)PhoneModel表结构如下:PhoneCompany表结构如下:,PhoneModel表通过字段coid与PhoneCompany表的coid相关联.现在的需求是如下图":新增一列查询models,这列显示一个手机制造商所生产的所有手机型号。因为一个手机制造商会生产很多型号的手机,就需要把多条手机型号的记录合并成一个值.使用for xml path可以实现类似的需求。SELECT coid,company,(SELECT model+',' FROM dbo.Phon
阅读全文
摘要:JS的event对象Event属性和方法:1. type:事件的类型,如onlick中的click;2. srcElement/target:事件源,就是发生事件的元素;3. button:声明被按下的鼠标键,整数,1代表左键,2代表右键,4代表中键,如果按下多个键,酒把这些值加起来,所以3就代表左右键同时按下;(firefox中 0代表左键,1代表中间键,2代表右键)4. clientX/clientY:事件发生的时候,鼠标相对于浏览器窗口可视文档区域的左上角的位置;(在DOM标准中,这两个属性值都不考虑文档的滚动情况,也就是说,无论文档滚动到哪里,只要事件发生在窗口左上角,clientX和
阅读全文
摘要:document.title //设置文档标题等价于HTML的title标签document.bgColor //设置页面背景色document.fgColor //设置前景色(文本颜色)document.linkColor //未点击过的链接颜色document.alinkColor //激活链接(焦点在此链接上)的颜色document.vlinkColor //已点击过的链接颜色document.URL //设置URL属性从而在同一窗口打开另一网页document.fileCreatedDate //文件建立日期,只读属性document.fileModifiedDate //文件修改日期
阅读全文
摘要:W3C那帮人的脑袋被驴踢了,直到javascript1.8.1才支持trim函数(与trimLeft,trimRight),可惜现在只有firefox3.5支持。由于去除字符串两边的空白实在太常用,各大类库都有它的影子。加之,外国人都很有研究精神,搞鼓了相当多实现。实现1String.prototype.trim = function() { return this.replace(/^\s\s*/, '').replace(/\s\s*$/, ''); }看起来不怎么样,动用了两次正则替换,实际速度非常惊人,主要得益于浏览器的内部优化。一个著名的例子字符串拼接
阅读全文
摘要:各种实现方式Pure DOM通常先使用getElementsByTagName("*")取出文档中所有元素,然后进行遍历,使用正则表达式找出匹配的元素放入一个数组返回。由于IE5不支持document.getElementsByTagName("*"),要使用分支document.all以防错误。The Ultimate getElementsByClassName方案,作者为Robert Nyman,05年实现,可见老外许多东西在很早以前就走得很远了。//三个参数都是必需的,查找一网页中5007个类名为“cell”的元素,IE8历时1828 ~ 184
阅读全文
摘要:查询速度慢的原因很多,常见如下几种: 1、没有索引或者没有用到索引(这是查询慢最常见的问题,是程序设计的缺陷) 2、I/O吞吐量小,形成了瓶颈效应。 3、没有创建计算列导致查询不优化。 4、内存不足 5、网络速度慢 6、查询出的数据量过大(可以采用多次查询,其他的方法降低数据量) 7、锁或者死锁(这也是查询慢最常见的问题,是程序设计的缺陷) 8、sp_lock,sp_who,活动的用户查看,原因是读写竞争资源。 9、返回了不必要的行和列 10、查询语句不好,没有优化 可以通过如下方法来优化查询 : 1、把数据、日志、索引放到不...
阅读全文
摘要:1、新建一个类库项目 2、将Class1.cs改为我们想要的名字 问是否同时给类改名,确定 3、修改Properties目录下面的AssemblyInfo.cs ComVisible属性设置为True 4、项目菜单->MyLib属性 找到“生成”选项卡 往下看,找到“为 COM Interop 注册”勾上 5、继续往下,找到“签名”选项卡 勾上“为程序集签名” 在下面的下拉框里面选择“ <新建...>” 6、在弹出的对话框里面,输入MyLib。。或者随便取个名字 去掉使用密码保护文件的选项 7、开始编码,任何一个公开的类,必须有一个 I开通的接口定义C# codeusin..
阅读全文
摘要:现代的浏览器IE6和Firefox都支持客户端Gzip,也就是说,在服务器上的网页,传输之前,先使用Gzip压缩再传输给客户端,客户端接收之后由浏览器解压显示,这样虽然稍微占用了一些服务器和客户端的CPU,但是换来的是更高的带宽利用率。现代的浏览器IE6和Firefox都支持客户端Gzip,也就是说,在服务器上的网页,传输之前,先使用Gzip压缩再传输给客户端,客户端接收之后由浏览器解压显示,这样虽然稍微占用了一些服务器和客户端的CPU,但是换来的是更高的带宽利用率。对于纯文本来讲,压缩率是相当可观的。如果每个用户节约 50%的带宽,那么你租用来的那点带宽就可以服务多一倍的客户了。 IIS6.
阅读全文
摘要:由于安全方面的考虑,Javascript被限制了跨域访问的能力,但是有时候我们希望能够做一些合理的跨域访问的事情,那么怎么办呢?这里分两类情况:一、基于同一父域的子域之间页面的访问;参见如下3个domain域:taobao.com、jipiao.taobao.com、promotion.taobao.com;它们有相同的父域taobao.com。二、基于不同父域页面之间的访问;参见如下3个domain域:taobao.com、baidu.com、sina.com.cn;它们具有不同的父域。解决它们之间跨域的方案有:方案1:服务器Proxy域A的页面JS需要访问域B下的链接获取数据,该方案在域A
阅读全文
摘要:什么是跨域JavaScript出于安全方面的考虑,不允许跨域调用其他页面的对象。但在安全限制的同时也给注入iframe或是ajax应用上带来了不少麻烦。这里把涉及到跨域的一些问题简单地整理一下:首先什么是跨域,简单地理解就是因为JavaScript同源策略的限制,a.com 域名下的js无法操作b.com或是c.a.com域名下的对象。更详细的说明可以看下表:URL说明是否允许通信http://www.a.com/a.js http://www.a.com/b.js同一域名下允许http://www.a.com/lab/a.js http://www.a.com/script/b.js同一域名
阅读全文
摘要:网络上曾经有过关于跨站脚本攻击与防御的文章,但是随着攻击技术的进步,以前的关于跨站脚本攻击的看法与理论已经不能满足现在的攻击与防御的需要了,而且由于这种对于跨站脚本认识上的混乱,导致现在很多的程序包括现在的动网都存在着跨站脚本过滤不严的问题,希望本文能给写程序的与研究程序的带来一点思路。 还是首先看看跨站脚本漏洞的成因,所谓跨站脚本漏洞其实就是Html的注入问题,恶意用户的输入没有经过严格的控制进入了数据库最终显示给来访的用户,导致可以在来访用户的浏览器里以浏览用户的身份执行HTml代码,数据流程如下: 恶意用户的Html输入————>web程序————>进入数据库————>
阅读全文
摘要:如题,这个漏洞原理的确很浅,所以只能浅释了。构造这种漏洞并不需要什么技术含量,本来不想提出来的。不过CSDN上面的下载资源分已经用完了,又懒得再申请一个帐号来下载资源,碰巧发现了一个CSDN的跳转漏洞,就写出来赚点资源分吧。跳转漏洞的形成很多网站的很多功能只对注册用户或部分vip用户开发,当没有登录的用户试图使用这个功能时,网站程序会自动跳转到登录的页面,待登录验证成功后再跳转会前一步的操作。这里面如果没有对参数做签名的话就容易产生跳转漏洞了。以CSDN为例,如果要下载资源的话,随便下载一个文档什么的,如果没有登录就会看到一下提示:图1 CSDN提示登录点击登录,就会跳转到如下一个url:ht
阅读全文
摘要:问:为什么Session在有些机器上偶尔会丢失?答:可能和机器的环境有关系,比如:防火墙或者杀毒软件等,尝试关闭防火墙。问:为什么当调用Session.Abandon时并没有激发Session_End方法?答:首先Session_End方法只支持InProc(进程内的)类型的Session。其次要激发Session_End方法,必须存在Session(即系统中已经使用Session了),并且至少要完成一次请求(在这次请求中会调用该方法)。问:为什么当我在InProc模式下使用Session会经常丢失?答:该问题通常是由于应用程序被回收导致的,因为当使用进程内Session时,Session是保
阅读全文
摘要:打开某个应用程序的配置文件Web.config后,我们会发现以下这段:<sessionState mode="InProc" stateConnectionString="tcpip=127.0.0.1:42424" sqlConnectionString="datasource=127.0.0.1;Trusted_Connection=yes" cookieless="false" timeout="20"/> 这一段就是配置应用程序是如何存储Session信息的了。我们以下的各种
阅读全文
摘要:使用SQL语句连接查询位于两个不同的服务器不同的数据库中的两张表,往往会被程序提示报错。编者根据自己的经验给出了一些解决方法。 使用SQL语句连接查询位于两个不同的服务器不同的数据库中的两张表,最初将SQL语句写成以下形式select*fromProductpinnerjoin&nb使用SQL语句连接查询位于两个不同的服务器不同的数据库中的两张表,往往会被程序提示报错。编者根据自己的经验给出了一些解决方法。使用SQL语句连接查询位于两个不同的服务器不同的数据库中的两张表,最初将SQL语句写成以下形式select*fromProductpinnerjoinopendatasource(&
阅读全文
摘要:Application 1. Application 用来保存所有用户共用的信息2. 在 Asp 时代,如果要保存的数据在应用程序生存期内不会或者很少发生改变,那么使用 Application 是理想的选择。但是在 Asp.net 开发环境中我们把类似的配置数据放在 Web.config 中。3. 如果要使用 Application 要注意的是所有的写操作都要在 Application_OnStart 事件中完成( global.Asax ),尽管可以使用 Application.Lock() 避免了冲突,但是它串行化了对 Application 的请求,会产生严重的性能瓶颈。4. ...
阅读全文
摘要:SELECT 表名=case when a.colorder=1 then d.name else '' end, 字段序号=a.colorder, 字段名=a.name, 标识=case when COLUMNPROPERTY( a.id,a.name,'IsIdentity')=1 then '√'else '' end, 主键=case when exists(SELECT 1 FROM sysobjects where xtype='PK' and name in ( SELECT name FROM sy
阅读全文
摘要:Win7 IIS7 ASP.NET MVC3.0 部署问题1、应用程序池采用经典模式,framework4.0。可能存在权限问题,解决办法:在高级设置的标识设为LocalSystem。一般mvc都采用集成模式,我为什么要选择经典模式呢?因为要识别httpModules配置。2、打开IIS的处理程序映射设置,”添加通配符脚本映射“请求路径:*可执行文件:C:\Windows\Microsoft.NET\Framework\v4.0.30319\aspnet_isapi.dll名称:mvc3,你还可能遇到情况,处理Routing的访问之外,其他的页面或者js就不能访问了,网上解决方法:在web.c
阅读全文
摘要:AntiXSS,由微软推出的用于防止XSS攻击的一个类库,可实现输入白名单机制和输出转义 文章最后有antixx演示工程下载 antixss下载地址 http://www.microsoft.com/download/en/details.aspx?id=5242 msi安装程序,安装之后,安装目录下有以下文件 AntiXSS.chm 包括类库的操作手册参数说明 HtmlSanitizationLibrary.dll 包含Sanitizer类(输入白名单) AntiXSSLibrary.dll 包含Antixss,Encoder类(输出转义) 使用时在工程内添加引用HtmlSa...
阅读全文
摘要:Global.asax 文件,有时候叫做 ASP.NET 应用程序文件,提供了一种在一个中心位置响应应用程序级或模块级事件的方法。你可以使用这个文件实现应用程序安全性以及其它一些任务。下面让我们详细看一下如何在应用程序开发工作中使用这个文件。概述Global.asax 位 于应用程序根目录下。虽然 Visual Studio .NET 会自动插入这个文件到所有的 ASP.NET 项目中,但是它实际上是一个可选文件。 删除它不会出问题——当然是在你没有使用它的情况下。.asax 文件扩展名指出它是一个应用程序文件,而不是一个使 用 aspx 的 ASP.NET 文件。Global.asax 文件
阅读全文
摘要:分页很重要,面试会遇到。不妨再回顾总结一下。1.创建测试环境,(插入100万条数据大概耗时5分钟)。create database DBTestuse DBTest--创建测试表create table pagetest(id int identity(1,1) not null,col01 int null,col02 nvarchar(50) null,col03 datetime null)--1万记录集declare @i intset @i=0while(@i<10000)begin insert into pagetest select cast(floor(rand()*1
阅读全文
摘要:Microsoft SQL Server 2005 提供了一些工具来监控数据库。方法之一是动态管理视图。动态管理视图 (DMV) 和动态管理函数 (DMF) 返回的服务器状态信息可用于监控服务器实例的运行状况、诊断问题和优化性能。常规服务器动态管理对象包括:dm_db_*:数据库和数据库对象dm_exec_*:执行用户代码和关联的连接dm_os_*:内存、锁定和时间安排dm_tran_*:事务和隔离dm_io_*:网络和磁盘的输入/输出此部分介绍为监控 SQL Server 运行状况而针对这些动态管理视图和函数运行的一些常用查询。示例查询您可以运行以下查询来获取所有 DMV 和 DMF 名称:
阅读全文