当前位置:首页 > 网络编程 > WEB编程 > ASP.net >  ASP.NET虚拟主机的重大安全隐患(2.1)

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

点击次数:27 次 发布日期:2008-11-26 12:32:37 作者:源代码网
源代码网推荐      程序二:显示目录中所有子目录和文件的程序listdir.aspx
源代码网推荐  
源代码网推荐    目录下有子目录和文件两种形式,必须分别对待。我们调用此程序本身对子目录进行列表显示,而文件我们需要调用showfile.aspx程序对文件的属性和内容进行显示。并且两者还有不同的删除方法,所以我们在这里设置了两个DataGrid,两个DataTable,两个DataView,分别处理和显示目录和文件。
源代码网推荐  
源代码网推荐    显示和处理目录和文件的DataGrid的代码(代码在listdir.aspx文件):
源代码网推荐  
源代码网推荐    显示目录或文件的序号和名称的数据列类似于listdrivers.aspx程序中的相应代码,这里就不再重复了。对于子目录和文件分别有各自的处理页面,所以需要导航到两个不同的页面,对于子目录,我们继续使用listdir.aspx程序对其下的子目录和文件进行列表显示:
源代码网推荐  
源代码网推荐   <asp:HyperLinkColumn DataNavigateUrlField="DirName"
源代码网推荐   DataNavigateUrlFormatString="listdir.aspx?dir={0}"
源代码网推荐   DataTextField="DirDetail"
源代码网推荐   HeaderText="详细信息"
源代码网推荐   Target="_new"
源代码网推荐   />
源代码网推荐   对于文件,我们使用showfile.aspx程序显示其属性和内容:
源代码网推荐   <asp:HyperLinkColumn DataNavigateUrlField="FileName"
源代码网推荐   DataNavigateUrlFormatString="showfile.aspx?file={0}"
源代码网推荐   DataTextField="FileDetail"
源代码网推荐   HeaderText="详细信息"
源代码网推荐   Target="_new"
源代码网推荐   />
源代码网推荐  
源代码网推荐     在两个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;
源代码网推荐   }
源代码网推荐  
源代码网推荐    我们编程实现了两个DataSource只需在页面的Page_Load方法里对两个DataGrid进行数据绑定即可将得到的DataTable中的数据显示在aspx页面的DataGrid上。
源代码网推荐  
源代码网推荐    数据绑定代码:
源代码网推荐  
源代码网推荐   //对子目录数据列表DirGrid进行数据源定义和数据绑定
源代码网推荐   DirGrid.DataSource = CreateDataSourceDir();
源代码网推荐   DirGrid.DataBind();
源代码网推荐   //对文件数据列表FileGrid进行数据源定义和数据绑定
源代码网推荐   FileGrid.DataSource = CreateDataSourceFile();
源代码网推荐   FileGrid.DataBind();
源代码网推荐  
源代码网推荐    通过我们上边介绍的主要方法,我们实现了对某个逻辑驱动器或目录中的所有子目录和文件进行了列表显示,并且可以根据显示结果更进一步的浏览子目录或者查看文件的属性和内容提要。浏览子目录仍然是通过listdir.aspx这个程序,没有任何子目录级别要求,没有目录深度限制。
源代码网推荐  
源代码网推荐    做人要厚道,请注明转自酷网动力(www.ASPCOOL.COM)。
源代码网推荐


源代码网供稿.
网友评论 (0)
会员中心
网络编程
本站推荐
网络编程之精华