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

http://tech.ddvip.com   2006年08月29日    社区交流

本文详细介绍ASP.NET虚拟主机的重大安全隐患

  在两个DataGrid(DirGrid,FileGrid)中我们分别设置了两个HyperLinkColumn列来导航到不同的处理页面。

  在两个DataGrid中我们都使用了一个删除的按钮列:

  <asp:ButtonColumn HeaderText="删除"
Text="删除"
CommandName="Delete"
/>

  由于添加、更新、删除功能列都是DataGrid的默认模板列,所以可以在Vs.net中通过DataGrid的属性生成器自动添加此列。

  获取上一页面所传递来的参数的代码:

  因为在下面产生数据源的方法中需要使用由上一个页面传递过来的参数来确定目录和文件的名称,所以在页面的Page_Load方法里使用了下列代码:

  strDir2List = Request.QueryString["dir"];

  字符串strDir2List即传过来的目录名或文件名。

  因为我们使用了两个DateGrid,就需要进行两次数据绑定,就有两个不同的生成数据源的方法。

  生成目录数据网格(DirGrid)数据源的方法:

  //通过此方法返回一个集合形式的数据视图DataView,用来初始化子目录的DataGrid
ICollection CreateDataSourceDir() {
dtDir = new DataTable();
DataRow dr;
//向DataTable中添加新的数据列,共四列
dtDir.Columns.Add(new DataColumn("DirID", typeof(Int32)));
dtDir.Columns.Add(new DataColumn("DirName", typeof(string)));
dtDir.Columns.Add(new DataColumn("DelDir", typeof(string)));
dtDir.Columns.Add(new DataColumn("DirDetail", typeof(string)));
//根据传入的参数(目录名)得到此目录下所有子目录名的字符串数组
string [] DirEntries = Directory.GetDirectories(strDir2List);
//使用foreach循环可以对未知长度的数组进行遍历循环
foreach(string DirName in DirEntries){
dr = dtDir.NewRow();
dr[0] = i;//序号
dr[1] = DirName;//文件夹名称
dr[3] = "删除";
dr[3] = "查看详情";
dtDir.Rows.Add(dr);
i++;
}
DataView dvDir = new DataView(dtDir);
//返回得到的数据视图
return dvDir;
}
生成文件数据网格(FileGrid)数据源的方法:
//通过此方法返回一个集合形式的数据视图DataView,用来初始化文件的DataGrid
ICollection CreateDataSourceFile() {
dtFile = new DataTable();
DataRow dr;
dtFile.Columns.Add(new DataColumn("FileID", typeof(Int32)));
dtFile.Columns.Add(new DataColumn("FileName", typeof(string)));
dtFile.Columns.Add(new DataColumn("DelFile", typeof(string)));
dtFile.Columns.Add(new DataColumn("FileDetail", typeof(string)));
//根据传入的参数(目录名)得到此目录下所有文件名的字符串数组
string [] FileEntries = Directory.GetFiles(strDir2List);
foreach(string FileName in FileEntries){
dr = dtFile.NewRow();
dr[0] = i;
dr[1] = FileName;
dr[2] = "删除";
dr[3] = "查看详情";
dtFile.Rows.Add(dr);
i++;
}
dvFile = new DataView(dtFile);
return dvFile;
}

作者:秦海鹏    责编:豆豆技术应用

正在加载评论...