摘要: 缓存是一种拿空间换时间的技术。缓存是改进网站性能的第一个手段。asp.net缓存主要分为:页面缓存,数据源缓存,数据缓存,三种类型。数据缓存:List<Photos> list = new List<Photos>(); if (Cache["photos"]==null) { PhotosBLL bll = new PhotosBLL(); list = bll.GetAllPhotos(); Cache["photos"] = list; } else { list = Cache["photos"] as 阅读全文
posted @ 2013-03-08 23:50 Suner 阅读(130) 评论(0) 推荐(0) 编辑
摘要: 当页面发生错误的时候,ASP.Net会将错误信息展示出来(Sqlconnection的错误就能暴露连接字符串),这样一来不好看,二来会泄露网站的内部实现信息,给网站带来安全隐患,因此需要定制错误页,发生错误时显示开发人员定制的页面。404页面放点广告也是好的嘛。配置web.config,配置customErrors区域: 在<system.web>中写错误页<customErrors mode="On" defaultRedirect="MyErrorPage.aspx"> <error statusCode="4 阅读全文
posted @ 2013-03-08 23:42 Suner 阅读(133) 评论(0) 推荐(0) 编辑
摘要: 1.页面传值的几种方式 QueryString Session Server.Transfer Cookie 2 Ado.net 五大对象 Connection Command DataAdapter DataSet DataReader3C#中的委托是什么?事件是不是一种委托?事件和委托的关系。 委托可以把一个方法作为一个参数带入另一个方法,可以理解为指向一个函数的指针。事件和委托没有可比性,委托是类型,事件是对象。事件的内部是用委托来实现的。4.overrider与overload的区别 。 重载是方法名相同,参数或者参数的类型不同,进行多次重载适应不同的需求。0verride是基... 阅读全文
posted @ 2013-02-28 23:57 Suner 阅读(350) 评论(0) 推荐(0) 编辑
摘要: (简单)方法一:1.首先在网站的根目录下添加一个Global.asax,全局的应用程序2.找到Application_BeginRequest 1)获取应用程序的路径将其变为相对路径 string url = Request.AppRelativeCurrentExecutionFilePath; 2)用正则表达式匹配获得的路径 Match match = Regex.Match(url, @"~/BookList/BookList_(\d+).aspx"); 3)用Context.RewritePath跳转到对应的程序目录if (match.Success) ... 阅读全文
posted @ 2013-02-01 21:16 Suner 阅读(157) 评论(0) 推荐(0) 编辑
摘要: 把数据库绑定在repeater上Repeater.DataSource=bll.getPageData(当前页,页数,)Repeater.bind();分页1.首先获取数据的总记录数public int GetRecordCount(int categoryId) { string sql = "select count(*) from Books"; if (categoryId!=0)//编号为零查看所有的书 { sql = sql + " where categoryId=@categoryId"; } return Convert.ToInt32 阅读全文
posted @ 2013-01-23 15:34 Suner 阅读(160) 评论(0) 推荐(0) 编辑
摘要: cookies常用来对用户的登录帐号的密码进行记录在用户的电脑内,下次在登录本次网站的时候不需要再次登录。为了安全最好用到加密技术,避免盗取帐号。接下来说明怎么使用,首先在第一次正确登录的时,需要把帐号和密码写进用户本机的cookie。在验证正确登录以后执行一下代码:Session["user"] = model;//保存session的值 if (!string.IsNullOrEmpty(Request.Form["checkMe"])) //如果选中"checkMe"单选按钮添加cookies { ... 阅读全文
posted @ 2013-01-21 21:28 Suner 阅读(369) 评论(0) 推荐(0) 编辑
摘要: 一般的网页都有通过邮箱来找回密码和重置功能,这个过程分析如下首先会让填写注册时间,用户的信息等等来判断是否是真正的用户这些这里这些不做详细讨论。当验证信息通过后,用户点击按钮后台会随机生成密码,并对其MD5加密,在加密之前回做一些自动生成一封邮件里边包含用户的密码(此时为明文),发送给用户。然后在服务器端会把加密的MD5替换旧的密码,此时密码修改成功。public void FindPassword(Model.User user) { string newPass = Guid.NewGuid().ToString().Substring(0,8);//随机生成八位的密码 user.Log. 阅读全文
posted @ 2013-01-19 12:29 Suner 阅读(418) 评论(0) 推荐(0) 编辑
摘要: 注册时一般会有邮箱的验证机制,这个过程会给邮箱发送一个链接,这个链接一般包含注册时的用户的id和随机生成的数据。随机生成的数据会保存在数据库中。当点击连接时以get的形式把用户的ID和随机生成的数据传给服务器,服务器端接收到数据后,用传过来ID查找到注册的用户保存在数据库中的激活码,然后比对get形式提交过来的激活码,如果匹配证明验证成功,这时把数据库中表示状态的字段修改成true。发送激活链接的方法public void SendEmail(string mail, string activeCode,string useID) { MailMessage mailMsg = new Mai 阅读全文
posted @ 2013-01-19 12:29 Suner 阅读(643) 评论(0) 推荐(0) 编辑
摘要: 一 、缓存在整个程序里边有很多配置的地方,我们一般会把这些配置文件保存成键值对的形式,放在数据库中。当需要时读取。然而这个配置的文档经常需要重复的读取,会给程序带来延迟和性能上的下降,我们需要优化。这个时候用的最多的方式就是设置缓存HttpRuntime.Cache["需要缓存的数据"];在下次读取的时候进行一个判断if(HttpRuntime.Cache["Setting"]==null) { //读取数据库返回值 value //把值装入缓存 HttpRuntime.Cache["Setting"] = value; } else 阅读全文
posted @ 2013-01-19 12:27 Suner 阅读(170) 评论(0) 推荐(0) 编辑
摘要: 1.自己定义一个类继承IHttpModule接口,实现里边的Init方法,在这个方法中给请求管道的第9个事件(AcquireRequestState),注册一个方法在这个方法中完成,(注意不要忘记Web.Config中完成注册.HttpModeules)。解释一下这句话的意思。IHttpModule是个很好的东西 ,IHttpModule向实现类提供模块初始化和处置事件。有个Init方法,然后这个方法又接收了一个HttpApplication对象,HttpApplication代表了当前的应用程序,我们需要在这个方法内注册 HttpApplication对象。可见,这个方法仅仅是用来对事件进行 阅读全文
posted @ 2013-01-17 23:31 Suner 阅读(240) 评论(0) 推荐(0) 编辑