【.net三层结构初探分析第1/4页】教程文章相关的互联网学习教程文章

ASP.NET 图片防盗链的实现原理分析

那么我来介绍下图片放盗链的一个方法 首先,添加个httpHandlers请求,WEBCONFIG部分配置节如下: <httpHandlers> <add verb="*" path="*.jpg" type="myhandler,App_Code"/> </httpHandlers> 注意:对应于system.web之下,别添错了哦! 然后添加个class,取名为myhandler继承于IHttpHandler class原型如下: 代码如下:using System; using System.Data; using System.Configuration; using System.Web; using System.Web.Security; ...

真正的获取客户端真实IP地址及利弊分析

多数代码类似: 代码如下:string IpAddress = (HttpContext.Current.Request.ServerVariables["HTTP_X_FORWARDED_FOR"]!=null && HttpContext.Current.Request.ServerVariables["HTTP_X_FORWARDED_FOR"] !=String.Empty) ?HttpContext.Current.Request.ServerVariables["HTTP_X_FORWARDED_FOR"] :HttpContext.Current.Request.ServerVariables["REMOTE_ADDR"]; 事实上,上面的代码只试用与用户只使用了1层代理,如果用户有2层,3...

asp.ent(C#)中判断空字符串的3种方法以及性能分析【图】

3种方法分别是: string a=""; 1.if(a=="") 2.if(a==String.Empty) 3.if(a.Length==0) 3种方法都是等效的,那么究竟那一种方法性能最高呢?本人用实验说明问题。 建立3个aspx页面(为什么用网页,主要是利用Microsoft Application Center Test ) WebForm1.aspx 代码如下:private void Page_Load(object sender, System.EventArgs e) { string a=""; for(int i=0;i<=1000000;i++) { if(a=="") { } } } WebForm2.aspx 代码如下:p...

.net Cookies安全性实践分析【图】

跨站脚本攻击一直是Web上常见的手段之一,攻击一般是劫持用户会话,拿到私有的钥匙。如何劫持这个会话呢? 一、Sniffer(这里采用的软件是Sniffer,java版的那个) Sniffer监听会话是不可护的,就和KOF里拉尔夫的宇宙幻影一样,只要打中,一定是致命的。 上图,就是一组侦听数据,当然这里侦听的是我本机的数据。实际上是可以侦听局域网,甚至广域网上的数据。得到一组16进制的值。可以用以下代码获得其值: 代码如下:strin...

asp.net 权限管理分析

权限管理一般分为“用户管理”“角色管理”“权限管理”。而其中的权限管理,主要是针对某一模块实现“添加”“修改”“删除”的针对性控制,比如某个用户有“添加文章”的权限,但没有“修改(审核)文章”的权限。以下我主要先讲下“权限管理”。 首先,存进数据库的格式,看下: 代码如下:news:3,gallery:1,users:15 也许你经常看到存进数据库是3,1,15就这样的格式,而没有前面的news,gallery,users,为了看上去方便以及程序编写...

.Net下的签名与混淆图文分析【图】

签名 即强命名程序集,可以确保你的程序集唯一,而不被篡改、冒用等;即使相同名字的程序集如果签名也会不同。签名前后程序集结构对比 假设程序集名子叫"WindowsApplication1",签名前后程序集信息对比 代码如下:WindowsApplication1, Version=1.0.0.0, Culture=neutral, PublicKeyToken=nullWindowsApplication1, Version=1.0.0.0, Culture=neutral, PublicKeyToken=85377e8b68475fc8 如果项目中引用了一个已签名的程序集a.dll,...

asp.net 事件与委托分析

它所实现的功能与C/C++中的函数指针十分相似。它允许你传递一个类A的方法m给另一个类B的对象,使得类B的对象能够调用这个方法m。但与函数指针相比,delegate有许多函数指针不具备的优点。首先,函数指针只能指向静态函数,而delegate既可以引用静态函数,又可以引用非静态成员函数。在引用非静态成员函数时,delegate不但保存了对此函数入口指针的引用,而且还保存了调用此函数的类实例的引用。其次,与函数指针相比,delegate是面...

.net开发人员常犯的错误分析小结

1.认为必须要用Visual Studio.NET来开发.NET应用 那些对微软.NET开发不了解的人误以为:利用.NET框架开发应用软件时必须要用到Visual Studio.NET。这并不正确。你只需安装可在微软网站上免费下载的.NET框架即可。 安装了.NET框架,你就可以应用你最喜爱的文本编辑器和.NET工具命令行来进行开发。而且,你还可以应用第三方开发工具,如SharpDevelop。 欲彻底了解Visual Studio.NET有关的讨论,请参阅以前的栏...

ASP.NET Ref和Out关键字区别分析【图】

值类型 引用类型 以C#为例:其值类型为sbyte,byte,char,short,ushort,int,uint,long和ulong,float和double,当然还有decimal和bool。而引用类型则是string和object。 我想说的 我想说的就是——Ref和Out把我弄糊涂的原因是,当时没有认真的去分析它对不同类型所做出的不同的动作。 对于值类型。 使用了Ref和Out的效果就几乎和C中使用了指针变量一样。它能够让你直接对原数进行操作,而不是对那个原数的Copy进行操作。举...

较为全面的Asp.net提交验证方案分析 (上)【图】

比如: 验证码存储在页面代码或Cookies里,暴露给客户端; 通过Session存储的验证码,虽然解决了安全问题,但一个用户只使用一个变量存储验证码,假如用户同时打开一个以上的页面,分别提交的话,就无法正常使用了; 验证码不会过期,这会留下隐患,使暴力破解变得可行(当然也可以通过刷新间隔、提交间隔、黑名单等手段加以控制); 此外还有伴随着提交产生的另一个问题——重复提交。 为解决上述问题,我曾走过不少弯路,后来总结出...

asp.NET开发中正则表达式中BUG分析

比如以下的代码就是用来测试用正则表达式匹配从 0xff 到 0xffff 的字符。而值范围在 0 到 0xfe 的所有字符是不能被匹配的。   以下为引用的内容: 代码如下:Regex regex = new Regex(@"[/u00FF-/uFFFF]+");   // The characters, whoes value are smaller than 0xff,   // are not expected to be matched.   for (int i = 0; i <0xff; i++) {   string s = new string(new char[] { (char)i });   Debug.Assert(!rege...

.net三层结构初探分析第1/4页【图】

对于学习,我选择了ACCESS数据库+存储过程的方式,这里记录的是我个人的学习体会和笔记,与网上的可能有不同之处,观点也不可能全部相同。为什么使用三层结构: 首先要明确,三层结构并不能使系统变快,实际上它会比起“单类结构”慢。但越来越多人使用三层结构开发,为啥呢?我在使用中,发现三层结构十分清晰,一个类,一个文件你该放在哪层就放哪层,不会象单类结构那样全部放到App_Data中,造成结构混乱。当然,使用三层结构的...

asp.net中利用ashx实现图片防盗链的原理分析

直接分析盗链原理:看下面用httpwatch截获的http发送的数据 GET /Img.ashx?img=svn_work.gif HTTP/1.1 Accept: */* Referer: //www.gxlcms.com/ Accept-Language: zh-cn UA-CPU: x86 Accept-Encoding: gzip, deflate User-Agent: Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 5.2; .NET CLR 1.1.4322; .NET CLR 2.0.50727; .NET CLR 3.0.04506.648; .NET CLR 3.5.21022; CIBA) Host: www.gxlcms.com Connection: Keep-Alive 该数...

使用UserControl做网站导航条的思路 分析

网址其实就是目录文件的影射。因此只要拆分URL,并且根据URL的层级关系进行循环,就可以得到当前导航文件的目录。1、建立数据库表:Navigate列名 数据类型 说明id intparentId int 父IDroot int 层级,0代表根目录,最顶层pathName varchar(50) (URL)路径名称navName varchar(50) (栏目)导航名称2、建立用户控件 navigate.ascx-----------------------------------------------------------<%@ Control Language="C#" AutoEventWir...

ASP.net基础知识之常见错误分析

1:command调用存储过程的时候,如果输出是dataset,selectcommand的command对象的connection先要指出,否则catch一辈子也是空的.. 2:存储过程的varchar字段如果是x.x的这种格式,容易出现细微的傻错误,注意不要漏了[]. 3:如果ascx文件的默认服务器控件的事件不重写的话在control控件里面没有自动回送!切记. 4:Page.RegisterOnSubmitStatement在ascx文件中小心使用... 5:viewstate在true的状态下暴涨了许多没用的数据... 6:明确掌握...