长期饭票

大家好,请喊我序员!
QQ:15838986
  首页  :: 新随笔  :: 联系 :: 订阅 订阅  :: 管理

随笔分类 -  C#

About C Sharp
摘要:阅读目录开始ASP.NET身份认证基础ASP.NET身份认证过程如何实现登录与注销保护受限制的页面登录页不能正常显示的问题认识Forms身份认证理解Forms身份认证实现自定义的身份认证标识在多台服务器之间使用Forms身份认证在客户端程序中访问受限页面用户登录是个很常见的业务需求,在ASP.NET中,这个过程被称为身份认证。 由于很常见,因此,我认为把这块内容整理出来,与大家分享应该是件有意义的事。在开发ASP.NET项目中,我们最常用的是Forms认证,也叫【表单认证】。 这种认证方式既可以用于局域网环境,也可用于互联网环境,因此,它有着非常广泛的使用。 这篇博客主要讨论的话题是:ASP. 阅读全文

posted @ 2013-04-12 11:30 Baode 阅读(233) 评论(0) 推荐(0) 编辑

摘要:using System;using System.Text;namespace NewLife.Common{ /// <summary>汉字转拼音类</summary> public class PinYin { private readonly static Int32[] pyValue = new Int32[]{-20319,-20317,-20304,-20295,-20292,-20283,-20265,-20257,-20242,-20230,-20051,-20036, -20032,-20026,-20002,-19990,-19986,-1998 阅读全文

posted @ 2012-09-26 11:22 Baode 阅读(493) 评论(0) 推荐(0) 编辑

摘要:现在我们已经很清楚,托管PE文件可以轻而易举的被反编译,如果您想源代码不被使用者通过反编译的方式获得,该使用哪种保护手段呢?借鉴传统Windows应用程序防止被反汇编的做法,我们也可以采用代码混淆和对应用程序集加壳的方法。关于程序集加壳的内容我会在下一篇文章中讨论。代码混淆,简单的说就是使用名称替换、字符串加密等手段使得我们最初的代码面目全非,从而使破解者即使能能成功获得IL代码也很难得到想要的源代码。代码混淆常用的方式有名称混淆、流程混淆和语法混淆。9.3.1 名称混淆在讲解名称混淆的原理之前,我们先建一个用于测试的控制台程序,如代码清单9-8所示。代码清单9-8 名称混淆测试代码clas. 阅读全文

posted @ 2012-09-13 10:28 Baode 阅读(1901) 评论(0) 推荐(0) 编辑

摘要:原文发表在:http://www.birchlee.com/post/2011/10/12/15.aspx项目分为三个首页如: /Home/Index 前台首页/Admin/Home/Index 后台首页/OA/Home/Index 办公平台首页新建一个asp.net MVC3 示例项目: 右键 →添加→Area直接运行项目:原因是存在同名的多个Controller,需要配置默认的命名空间。解决方法:打开Global.asax.cspublic static void RegisterRoutes(RouteCollection routes) { routes.IgnoreRoute(&qu 阅读全文

posted @ 2012-08-20 10:45 Baode 阅读(316) 评论(0) 推荐(0) 编辑

摘要:今天老赵在园子里发了一篇文章"警惕匿名方法造成的变量共享",立即引起了大家的广泛关注(老赵就是园子的"人气天王",呵呵),而且这个问题园子里也有其它几篇文章做了研究比如"闭包","《你不常用的c#之三》:Action 之怪状 "如果只是停留在c#2.0/3.0的"简捷且优雅"的代码风格上,初学者确实难理解这个"怪"现象,前二天买了本anytao的“你必须知道的.net”,里面提供了一种研究这类表面"怪"现象的基本方法--IL分析,并推荐了大名鼎鼎的反编译工 阅读全文

posted @ 2012-07-16 17:50 Baode 阅读(726) 评论(0) 推荐(0) 编辑

摘要:作者:Alex.Chan | 出处:博客园 | 2011/10/29 11:14:15 | 阅读28次 无论是互动性质的论坛系统还是CMS,商城,多级的分类实现是必要的。写个简单的多级分类实现数据库设计:ID (int)| Name(varchar(20))| ParentID(int)| Path(varchar(1000)递归形式的数据库设计,Path主要是用来记录分类的路径,用于查找某一分类下的子孙分类等。基本的功能都用存储过程来实现1.在某一节点下增加子节点CodeCode highlighting produced by Actipro CodeHighlighter (freew. 阅读全文

posted @ 2012-06-26 17:38 Baode 阅读(916) 评论(0) 推荐(0) 编辑

摘要:一、前言 很多情况下二级分类已经不能满足需要了,而网上可用的多级分类的例子实在是不好找,故有此文。http://bbs.blueidea.com/viewthread.php?tid=1182243大家可以先看这个,它介绍了一种超级好的算法,反正我是看不大懂呀。二、我们要解决的问题:1、 分类算法常常表现为树的表示和遍历问题。那么,请问:如果用数据库中的一个Table来表达树型分类,应该有几个字段?2、 如何快速地从这个Table恢复出一棵树;3、 如何判断某个分类是否是另一个分类的子类;4、 如何查找某个分类的所有产品;5、 如何生成分类所在的路径。6、 如何新增分类;三、递归实现的优点与. 阅读全文

posted @ 2012-06-26 17:35 Baode 阅读(469) 评论(0) 推荐(0) 编辑

摘要:第一种方案: 使用递归算法,也是使用频率最多的,大部分开源程序也是这么处理,不过一般都只用到四级分类。这种算法的数据库结构设计最为简单。category表中一个字段id,一个字段fid(父id)。这样可以根据WHERE id = fid来判断上一级内容,运用递归至最顶层。 分析:通过这种数据库设计出的无限级,可以说读取的时候相当费劲,所以大部分的程序最多3-4级分类,这就足以满足需求,从而一次性读出所有的数据,再对得到数组或者对象进行递归。本身负荷还是没太大问题。但是如果分类到更多级,那是不可取的办法。 这样看来这种分类有个好处,就是增删改的时候轻松了…然而就二级分类而言,采用这种算法... 阅读全文

posted @ 2012-06-26 17:33 Baode 阅读(381) 评论(1) 推荐(0) 编辑

摘要:1、两种不同的方法计算字符串的长度 string strTmp = "wk986王克东"; int i = System.Text.Encoding.Default.GetBytes(strTmp).Length; //算汉字的长度 int j = strTmp.Length; //不算汉字的长度 Console.WriteLine("字符串{0},算汉字的长度:{1},不算汉字长度:{2}", strTmp,i,j); //转换成数组计算数组的长度 byte[] bytStr = System.Text.Encoding.Default.GetByte 阅读全文

posted @ 2012-06-08 17:33 Baode 阅读(1465) 评论(0) 推荐(0) 编辑

摘要:EDM文件 EDM是实体数据关系映射的XML文件,不同于Nhibernate每个对象单独映射了一个XML文件。EDM主要有三部分构成CSDL,SSDL,MSL。CSDL表面的是实体数据模型结构,SSDL表示对应的数据存储的架构,CSDL实体与SSDL数据结构的关系通过MSL映射实现。EDM是通过... 阅读全文

posted @ 2012-06-05 10:03 Baode 阅读(9987) 评论(3) 推荐(3) 编辑

摘要:一、x.509证书 1.制作证书先进入到vs2005的命令行状态,即:开始-->程序-->Microsoft Visual Studio 2005-->Visual Studio Tools-->Visual Studio 2005 命令提示键入:makecert -r -pe -n "CN=MyServer" -ss My -sky exchange解释一下:makecert.exe是一个专门用来制作证书的小工具,上面一行的意思就是制作一个CN=MyServer的服务器证书,默认存储在CurrentUser"My这个位置,同时这个证书标识 阅读全文

posted @ 2012-05-04 16:11 Baode 阅读(407) 评论(0) 推荐(0) 编辑

摘要:构思: 普通的文件下载上传需要反复的进行IO 操作,占用服务器虚拟内存好IO 线程较高,如果控制不好会导致CPU适用率一直占用率过高,本人在项目中遇到该问题,为解决该问题才有以下构思. 为了解决IO操作频繁IO线程占用过高,采用内存缓存文件(因此只能支持较小文件) ,那么采用缓存的时候就要考虑到文件的使用率和内存占用率的问题,为了解决文件使用率过低并占用内存的问题,采用文件使用心跳的检测文件的存活率,并对自定义的缓存器设置文件缓存上限,解决的文件存活率问题那么新的问题来了,如何辨认相同文件,相同文件是否需要缓存两份,因此采用的文件MD5加密获取文件MD5字符串作为缓存键来区分不同文件,那么就可 阅读全文

posted @ 2012-04-24 13:25 Baode 阅读(1388) 评论(0) 推荐(0) 编辑

摘要:asp.net里提供了多种方式,从服务器端向客户端写文件流,实现客户端下载文件。这种技术在做防下载系统时比较有用处。主些技术主要有:WriteFile、TransmitFile和BinaryWrite其中WriteFilet和BinaryWrite出现得比较早,对文件流的输出可以启动作用,但由于都是将整个文件读到内存后再往客户端写,因此会占用大量的内存资源,特别是要下载的文件比较大时,影响asp.net应用的稳定运行。TransmitFile是为了弥补WriteFile和BinaryWrite的不足才出现的方法,比WriteFile和BinaryWrite更加的稳定强大,对大文件的支持也不错. 阅读全文

posted @ 2012-04-23 17:28 Baode 阅读(403) 评论(0) 推荐(0) 编辑

摘要:作者: Stephen Walther原文地址:http://msdn.microsoft.com/asp.net/default.aspx?pull=/library/en-us/dnvs05/html/UserProfiles.asp译者:Tony Qu概要:许多ASP.NET应用程序需要跨访问的用户属性跟踪功能,在ASP.NET1.1中,我们只能人工实现这一功能。但如今,使用 ASP.NET 2.0的Profile对象,这个过程变得异常简单。Stephen Walther将验证该对象,并向你展示如何使用Profile来跟踪用户属性、创建一个购物篮,及其他一些例子。总目录介绍User P. 阅读全文

posted @ 2012-04-18 11:18 Baode 阅读(176) 评论(0) 推荐(0) 编辑

摘要:C#网络编程(接收文件) - Part.5这篇文章将完成Part.4中剩余的部分,它们本来是一篇完整的文章,但是因为上一篇比较长,合并起来页数太多,浏览起来可能会比较不方便,我就将它拆为两篇了,本文便是它的后半部分。我们继续进行上一篇没有完成的步骤:客户端接收来自服务端的文件。4.客户端接收文件4.1服务端的实现对于服务端,我们只需要实现上一章遗留的sendFile()方法就可以了,它起初在handleProtocol中是注释掉的。另外,由于创建连接、获取流等操作与receiveFile()是没有区别的,所以我们将它提出来作为一个公共方法getStreamToClient()。下面是服务端的. 阅读全文

posted @ 2012-04-12 11:11 Baode 阅读(236) 评论(1) 推荐(0) 编辑

摘要:C#网络编程(订立协议和发送文件) - Part.4文件传输前面两篇文章所使用的范例都是传输字符串,有的时候我们可能会想在服务端和客户端之间传递文件。比如,考虑这样一种情况,假如客户端显示了一个菜单,当我们输入S1、S2或S3(S为Send缩写)时,分别向服务端发送文件Client01.jpg、Client02.jpg、Client03.jpg;当我们输入R1、R2或R3时(R为Receive缩写),则分别从服务端接收文件Server01.jpg、Server02.jpg、Server03.jpg。那么,我们该如何完成这件事呢?此时可能有这样两种做法:类似于FTP协议,服务端开辟两个端口,并. 阅读全文

posted @ 2012-04-12 11:08 Baode 阅读(194) 评论(0) 推荐(0) 编辑

摘要:C#网络编程(异步传输字符串) - Part.3这篇文章我们将前进一大步,使用异步的方式来对服务端编程,以使它成为一个真正意义上的服务器:可以为多个客户端的多次请求服务。但是开始之前,我们需要解决上一节中遗留的一个问题。消息发送时的问题这个问题就是:客户端分两次向流中写入数据(比如字符串)时,我们主观上将这两次写入视为两次请求;然而服务端有可能将这两次合起来视为一条请求,这在两个请求间隔时间比较短的情况下尤其如此。同样,也有可能客户端发出一条请求,但是服务端将其视为两条请求处理。下面列出了可能的情况,假设我们在客户端连续发送两条“Welcome to Tracefact.net!”,则数据到. 阅读全文

posted @ 2012-04-12 11:07 Baode 阅读(241) 评论(0) 推荐(0) 编辑

摘要:C#网络编程(同步传输字符串) - Part.2服务端客户端通信在与服务端的连接建立以后,我们就可以通过此连接来发送和接收数据。端口与端口之间以流(Stream)的形式传输数据,因为几乎任何对象都可以保存到流中,所以实际上可以在客户端与服务端之间传输任何类型的数据。对客户端来说,往流中写入数据,即为向服务器传送数据;从流中读取数据,即为从服务端接收数据。对服务端来说,往流中写入数据,即为向客户端发送数据;从流中读取数据,即为从客户端接收数据。同步传输字符串我们现在考虑这样一个任务:客户端打印一串字符串,然后发往服务端,服务端先输出它,然后将它改为大写,再回发到客户端,客户端接收到以后,最后再. 阅读全文

posted @ 2012-04-12 11:05 Baode 阅读(228) 评论(0) 推荐(0) 编辑

摘要:C#网络编程(基本概念和操作) - Part.1引言C#网络编程系列文章计划简单地讲述网络编程方面的基础知识,由于本人在这方面功力有限,所以只能提供一些初步的入门知识,希望能对刚开始学习的朋友提供一些帮助。如果想要更加深入的内容,可以参考相关书籍。本文是该系列第一篇,主要讲述了基于套接字(Socket)进行网络编程的基本概念,其中包括TCP协议、套接字、聊天程序的三种开发模式,以及两个基本操作:侦听端口、连接远程服务端;第二篇讲述了一个简单的范例:从客户端传输字符串到服务端,服务端接收并打印字符串,将字符串改为大写,然后再将字符串回发到客户端,客户端最后打印传回的字符串;第三篇是第二篇的一个. 阅读全文

posted @ 2012-04-12 09:56 Baode 阅读(184) 评论(0) 推荐(0) 编辑

摘要:Request.QueryString:获取 HTTP 查询字符串变量集合。一般是获取Get方式提交的数据,包含由客户端发送的查询字符串变量的集合。例如,如果请求URL 为 http://www.cnblogs.com/errorif/posts.aspx?id=44,则 System.Web.HttpRequest.QueryString的值为“id=44”。Request.Form:获取窗体变量集合。一般是获取以Form形式Post提交的数据Request:从几个集合取数据是有顺序的,从前到后的顺序依次是 QueryString,Form,Cookie最后是ServerVariables. 阅读全文

posted @ 2012-04-10 13:27 Baode 阅读(440) 评论(0) 推荐(0) 编辑