位置:海鸟网 > IT > ASP.NET >

ASP.NET虚拟主机的重大安全隐患(三)

创建数据源的代码(代码在listdrivers.aspx.cs文件中):



//通过此方法返回一个集合形式的数据视图DataView
ICollection CreateDataSource() {
//定义内存中的数据表DataTable
DataTable dt = new DataTable();
//定义DataTable中的一行数据DataRow
DataRow dr;
/*向DataTable中增加一个列,格式:DataColumn("Column", type)
Column为数据列的名字,type为数据列的数据类型*/
dt.Columns.Add(new DataColumn("ID", typeof(Int32)));
dt.Columns.Add(new DataColumn("drivers", typeof(string)));
dt.Columns.Add(new DataColumn("detail", typeof(string)));
//使用for循环将逻辑驱动器的名称以行的形式添加到数据表DataTable中
for (int i = 0; i < nNumOfDrives; i++) {
//定义新行
dr = dt.NewRow();
//对行中每列进行赋值,注意要与上边定义的DataTable的行相对应
dr[0] = i; //循环生成的序号
dr[1] = achDrives[i].ToString(); //逻辑驱动器的名称
dr[2] = "查看详情";
//向DataTable中添加行
dt.Rows.Add(dr);
}
//根据得到的DataTable生成自定义视图DataView
DataView dv = new DataView(dt);
//返回得到的视图DataView
return dv;
}

  我们通过这个方法得到了一个包含所有我们需要的数据的数据视图DataView,我们只需要在此aspx页的Page_Load方法中将此数据视图绑定到DataGrid上就可以了。

  数据绑定代码(代码在listdrivers.aspx.cs文件中):

/* 设置DataGrid的数据源DataSource为我们从CreateDataSource()方法得到的数据视图DataView */
DriversGrid.DataSource = CreateDataSource();
//将此DataGrid进行数据绑定
DriversGrid.DataBind();

  通过上边介绍的几种主要方法我们就实现了获取系统信息和显示所有逻辑驱动器名称的功能,并且可以通过相应的链接进入下一个显示目录和文件名的程序listdir.aspx显示该逻辑驱动器下的所有目录和文件。