.NET Developer, Microsoft MVP

All Posts (321) 321


ASP.NET读写Web.Config

先说下,我写的很多技术类文章都是面向初学者的,为了便于他们理解,我会写的尽量详细,包括很多最基础的操作步骤,并且有些说法可能不太严谨,高手请勿追究。如果写的太专业,不仅没人看我的博客,我还会被喷装B。请高手们原谅。以前我做网站设置模块的时候,总喜欢把设置都写在一个xml文件里,然后用程序去读写这个xml文件。虽然.NET对XML的支持很好(现在有Linq To XML了),并且我也使用了一个XML工具类,但总体来说,自己手动读写一个xml文件,还是有点蛋疼的。一不小心就容易出错。今天我突然想到,我们曾经无数次在Web.Config里读取过连接字符串,那么为何不把网站的设置信息也保存在Web.Config中呢?只要使用System.Configuration下的ConfigurationManager类就可以操作Web.Config了,微软都给我们封装好了!为了验证这一点的可行性,我写了一个...

ASP.NET Web.Config

ASP.NET GridView超链接列取值

场景:开发一个简单的Web文件管理功能,第一列是指向文件的超链接,最后一列放一个删除按钮。现在要求按删除按钮后,删除对应的文件。思路:获取当前行的第一列的值,然后调用File.Delete()方法。按照以往的写法,我们会在GridView的SelectedIndexChanged事件中,先找到当前行:int i = GridView1.SelectedIndex;然后通过 GridView1.Rows[i].Cells[0].Text来访问当前行第一列的数据。但是,如果不幸遇到超链接列,这种写法取出的缺是空串。我研究了好久,最后发现,HyperLink Field在GridView中要当作Web Control来处理。所以必须先转换为HyperLink,然后才能访问其Text属性。写法如下:((HyperLink)GridView1.Rows[i].Cells[0].Controls[0]...

ASP.NET GridView

IIS7启用Windows身份验证的办法

最近因为工作需要,在PC上用IIS建了个简单的文件服务器(启用目录浏览),但这样的服务需要安全验证,我不能让每个人都可以访问我的文件。我记得以前在IIS5、IIS6里,是可以设置身份验证方式的,只要去掉匿名访问,打开网站的时候就需要输入IIS服务器上的用户名和密码。 然而换了Windows7之后,我没有注意过这个功能,直到今天才发现,Win7里的IIS7.5,默认是不带Windows身份验证的。如果把匿名身份验证关闭的话,访问网站会直接失败,而不是弹出登录框。 经过一番研究,终于发现了开启Windows身份验证的办法:控制面板-程序和功能-打开和关闭Windows功能-Internet信息服务-万维网服务-安全性,选择Windows身份验证。 然后,回到你的IIS控制台。选择要进行身份验证的网站。在身份验证中,将Windows身份验证启用,其他全部禁用。 大功告成:...

IIS7 Authentication

ASP.NET Repeater控件绑定List<T>泛型的写法

我们在开发分成架构的Web应用程序时,常常把数据库中的记录放到一个List中,做到了良好的封装。调用业务逻辑的程序猿也无需知道库表结构就可以直接使用“Model.属性”来访问各个字段的数据了。但在做显示的时候,初学者可能会碰到一些问题。以往大家在显示控件(如Repeater)上绑定的都是DataSet,ASPX页面里写的是“”。那如何绑定一个List泛型呢?其实,Repeater控件是支持绑定到业务对象的,并且我们也不再用Eval表达式了。看一个例子: 后台代码: GeekStudio.BLL.Blog optBlog = new GeekStudio.BLL.Blog(); Repeater1.DataSource = optBlog.GetModelList(); Repeater1.DataBind(); 其中,GetModelList()返回的是一个List。我们可以...

ASP.NET List<T> Repeater Generics

C#获取进程、查找并结束进程

最近看到一个考试系统,有个功能是用来监视进程的。一旦发现如Communicator.exe这样的违禁软件就立即杀死进程并上报给服务器。我稍微研究了一下,这个功能实现起来其实很简单。就是使用ManagementObjectSearcher获取进程列表,然后放在一个Collection里,之后就可以按照自己的逻辑去做了。 下面是一个例子:获取进程列表、创建“违禁”进程名单、查找并杀死进程。注意先要在项目里添加System.Management的引用。using System; using System.Management; namespace ConsoleApplication3 { class Program { static void Main(string[] args) { /...

C# Process

ASP.NET中GridView的多选、删除

我们在开发网站的时候,有个很常见的功能,就是要让GridView能够选择多项,然后一起删除。效果类似下面这张图,这是我网站后台管理页面中的一个GridView。其实制作这个效果不难,思路是:增加一个checkbox列,这个列的数据绑定到表的主键(比如Id),前台的代码可以在VS的可视化设计器中完成,你要做的仅仅只是增加一个CheckBox列。前台代码如下:...

ASP.NET GridView

Infosys面试经历

今天上午本人参加了Infosys公司的实习生面试。写一下过程帮助大家了解一下情况~在这个面试之前,Infosys公司之前来我们学校做过一次宣讲会,是一个印度人讲的,说实话听不太懂,呵呵,当天就做了笔试,笔试一般是英语阅读理解题,还有一半是英文智力题,不难,就是考察一些逻辑思维和几何什么的。经过了笔试Infosys就会通知你去公司面试,在浦东软件园。很远就可以看见Infosys的大楼,到了之后先是签到,前台小姐会发给你一个Visitor的胸卡,然后就可以进去候场了。候场的时候,会填写一张表单,包括你的个人信息、工作经历(如果有)、还有你希望应聘的职位(对于我们这次,都应该写软件开发实训),不过我下手比较快,ASP.NET程序员已经写上去了- -!表格收上去以后就开始按照收的顺序逐个面试了。面试官有中国人也有印度人,如果只有中国人的话,可以讲中文,但如果有印度人在就一定要讲英文。至于面你的是中...

Infosys Interview

教你如何备份火狐浏览器(Firefox)的插件及设置

使用火狐的用户经常会安装自己喜欢的插件,并随心所欲更换界面、更改设置。这也是火狐的特色之一,可以打造最适合自己的浏览器。 然而,现在很多人不止拥有一台计算机。如果要再别的电脑上再安装一遍插件,并逐个调整设置,是非常麻烦的事。可惜火狐本身并没有提供插件备份的功能。最新版的火狐4也只是同步个人设置和书签而已。 下面我就教大家如何备份一切东西的办法(包括插件、个人设置、书签) 首先,在火狐的地址栏中输入about:support,会打开如下界面。 点击“打开所在文件夹”按钮,会弹出一个资源管理器,并且定位到你当前的Profile文件夹。 这个路径在Windows7中一般为:C:\Users\Administrator\AppData\Roaming\Mozilla\Firefox\Profiles\随机字符串.default(XP等其他系统可能略有不同) 向上两层,定位到C:\U...

Firefox Profile Backup Plugin

浅谈SQL注入攻击与防范

前置知识:数据库、SQL语句、Web编程(ASP、ASP.NET) 前言:这次要谈到问题,其实不是什么新鲜的内容了,早在许多年前,就在各种黑客杂志和网站上提及过。这次我重新谈起这个问题,一方面是为了完成作业,另一方面我会结合目前的前沿技术来谈谈在SQL注入方面的新进展和防范。希望大家能以技术学习为目的,不要利用SQL注入漏洞进行非法攻击。 一、SQL注入漏洞是如何产生的 我们知道,一个动态网站,往往是要和数据库紧密交互的,即按条件从数据库中取出数据在网页上送显,或按用户的操作去改变数据库中的内容。最普遍的应该是新闻系统。我们经常在地址栏看形如这样的URL:http://某网站/ReadNews.asp?id=32,这个URL的作用是把ID=32传给 ReadNews.asp,ReadNews接受到这个id后,就会到数据库中找到id为32的新闻,取出这条记录并将它显示在网页上。然而,这...

ACCESS ASP.NET SQL Attack

GridView生成序号

一个经常碰到的情况:GridView需要添加一个序号列,并且从1开始自动编号。而数据库中的ID往往是不连续的(会有记录被删除的情况),我们无法绑定现有字段作为编号。因此我们需要手动给GridView编号。 思路:在GridView每一行,既Row,被生成的时候,在序号单元格中输出该行的ID+1(第一行是从0开始编的,因此要+1) 实现: 首先,在ASPX页面中,需要手动给GridView添加一个BoundField。示例代码如下: 后台代码这样写:...

ASP.NET GridView