频道直达 - 学院 - 下载 - 交易 - 特效 - 字库 - 手册 -排名-工具- 繁體
网页教学网站开发 设为首页
加入收藏
联系我们
建站搜索: 常用广告代码   用户注册 | 用户登陆
您当前的位置:中国建站之家 -> 网站开发设计技术教程 -> Asp.Net教程 -> ASP.NET虚拟主机的重大安全隐患(1.2)

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

作者:未知  来源:转载  发布时间:2005-9-15 0:18:57  发布人:acx

减小字体 增大字体

     二、文件系统操作示例
  
    在我们编写代码之前,有必要了解一下我们需要用到的几个主要的类。这几个类都在System.IO名称空间下,System.IO 名称空间包含允许在数据流和文件上进行同步和异步读写的类。
  
    在整个应用程序的开始部分我们需要了解一下服务器的系统信息,这就需要用到System.Environment类,该类提供有关当前环境和平台的信息以及操作它们的方法。我们通过System.Environment类可以得到系统的当前目录和系统目录,这可以使我们更快的发现几个关键的目录;我们还可以通过获取运行当前进程的用户名来帮助我们了解ASP.NET程序运行所使用的用户,进一步设置用户权限以避免这一安全问题。
  
    我们还要使用System.IO名称空间的其他几个类是:
  
    System.IO.Directory:提供用于创建、移动和枚举通过目录和子目录的静态方法的类
  
    System.IO.File:提供用于创建、复制、删除、移动和打开文件的静态方法的类
  
    System.IO.FileInfo:提供创建、复制、删除、移动和打开文件的实例方法的类
  
    System.IO.StreamReader:实现一个 TextReader,使其以一种特定的编码从字节流中读取字符。
  
    每个我们所使用的类的属性和方法的具体用法我们将以代码注释的方式在程序中加以说明。
  
    System.IO名称空间在 .NET FRAMEWORK提供的mscorlib.dll中,在使用VS.Net编程之前需要将此Dll引用到此项目中。
  
    我们所编写的程序都使用了Codebehind方式,即每一个aspx程序都有一个对应的aspx.cs程序,aspx程序中只是写与页面显示相关的代码,所有逻辑实现的代码都放在相应的aspx.cs文件中,这样就可以更好得做到显示与逻辑的分离。由于我们的目的不是讨论Codebehind技术,所以就不在对此多加讨论了。
  
    在这篇文章里,我们只介绍几个主要的类及其关键方法的用法,详细程序请查看附带的源代码。
  
    程序一:显示服务器的当前信息和全部逻辑驱动器的名称的程序listdrivers.aspx
  
    主要方法1:我们使用 GetSysInf() 方法来得到服务器的当前环境和平台的信息
  
  //获取系统信息的方法,此方法在listdrivers.aspx.cs文件中
  public void GetSysInf () {
  //获取操作系统类型
  qDrives = Environment.OSVersion.ToString();
  //获取系统文件夹
  qSystemDir = Environment.SystemDirectory.ToString();
  /*获取映射到进程上下文的物理内存量,通过这一内存映射量可以了解ASP.NET程序在运行时需要多少系统物理内存,有助于更好的规划我们的整个应用,因为物理内存量是以Byte为单位的,所以我们将此数值除以1024,可以得到单位为KB的物理内存量*/
  qMo = (Environment.WorkingSet/1024).ToString();
  //获取当前目录(即该进程从中启动的目录)的完全限定路径
  qCurDir = Environment.CurrentDirectory.ToString();
  //获取主机的网络域名
  qDomName = Environment.UserDomainName.ToString();
  //获取系统启动后经过的毫秒数
  qTick = Environment.TickCount;
  //计算得到系统启动后经过的分钟数
  qTick /= 60000;
  //获取机器名
  qMachine = Environment.MachineName;
  //获取运行当前进程的用户名
  qUser = Environment.UserName;
  /*检索此计算机上格式为"<驱动器号>:\"的逻辑驱动器的名称,返回字符串数组,这是下一步操作的关键所在*/
  achDrives = Directory.GetLogicalDrives();
  //获取此字符串数组的维数,确定有多少个逻辑驱动器
  nNumOfDrives = achDrives.Length;
  }
  
  
    系统信息不需要进行操作,我们简单的用asp:Label将他们显示出来就行了。逻辑驱动器的个数在不同的服务器上是不定的,所以用不定长数组保存逻辑驱动器的名称,而且逻辑驱动器的名称也是我们下一步浏览目录和文件的基础,故我们采用了数据网格DataGrid来显示和处理它。
  
    显示和处理逻辑驱动器名称的DataGrid的代码(代码在listdrivers.aspx文件):
  
  
  <asp:DataGrid id="DriversGrid" runat="server" AutoGenerateColumns="false">
  <Columns>
  <asp:BoundColumn HeaderText="ID" DataField="ID" />
  <asp:BoundColumn HeaderText="磁盘名" DataField="Drivers" />
  <asp:HyperLinkColumn
  HeaderText="详细信息"
  DataNavigateUrlField="Drivers" DataNavigateUrlFormatString="listdir.aspx?dir={0}"
  DataTextField="Detail"
  Target="_new" />
  </Columns>
  </asp:DataGrid>
  
    前两个BoundColumn列都是显示序号和实际逻辑驱动器名称的,需要说明的是第三列,我们在进入各个逻辑驱动器显示目录和文件之前需要将所选择的逻辑驱动器的名称传递到显示目录的文件去,所以需要一个特殊的超级链接行HyperLinkColumn,我们将DataNavigateUrlField设置为数据源中要绑定到 HyperLinkColumn 中的超级链接的 URL 的字段,在此即逻辑驱动器名称。然后将DataNavigateUrlFormatString设置为当 URL 数据绑定到数据源中的字段时,此HyperLinkColumn中的超级链接的 URL 的显示格式,即要链接到的下一级处理页面,在此为listdir.aspx?dir={用户点击行的逻辑驱动器名称}
  


将本文收藏到QQ书签与更多好友分享
[打 印]
[] [返回上一页] [收 藏]
∷相关文章评论∷    (评论内容只代表网友观点,与本站立场无关!) [更多评论...]
精彩推荐
热门文章
· 注册码大全二
· 注册码大全四
· 注册码大全一
· 要10G免费网络硬盘的请进..
· 通过google 赶快来赚美金..
· 注册码大全十
· 头像-qq头像(qq新头像)4..
· 让你轻松架设FTP服务器1..
· 注册码大全三
· 梦幻背景图片7
· 卡通动物图片6
· 网页制作素材-按钮素材2..
· 让你轻松架设FTP服务器5..
· 风景图片8
· 注册码大全九
· 让你轻松架设FTP服务器2..
关注此文读者还看过
· 怎样经由ADO来压缩Micro..
· Flash模拟老电影播放效果..
· 盛大收购锦天科技 23岁创..
· 百度获准建博士后工作站..
· 一段php代码:备份、恢复..
· 用Photoshop制作数码点阵..
· Photoshop打造美丽空间超..
· 时尚:Photoshop打造超绚..
· 获得客房端的MAC(Media..
· 基于AJAX技术实现Struts..
· 网站当前的在线人数
· Flash菜单轻松做 下
· 详细讲解从六个方面将您..
· ASP进阶之文章在线管理更..
· 飞机游戏的注释、源码
· FWMX一例XP风格按钮的制..
相关文章
· ASP.NET连接Access和SQL Se..
· Asp.net中防止用户多次登录..
· ASP.NET 与 Ajax 的实现方式..
· ASP.net平台社区软件Discuz..
· ASP.NET AJAX中的异步..
· 解析:如何在 ASP.NET 中下..
· ASP.Net中保护自定义的服务..
· ASP.NET中的doPostBack脚本..
· 不使用VS进行ASP.NET Membe..
· 关于ASP.NET编程中的嵌套If..
· ASP.NET 2.0 页面状态持续程..
· ASP.NET中的日期与时间的处..
· Asp.net编程中的数组基础实..
· 简单介绍 ASP.NET 中的运算..
· Asp.Net 构架(Http请..
· Asp.net中的Popup控件..
关于本站 - 网站帮助 - 广告合作 - 下载声明 - 友情连接 - 网站地图 - 人才招聘
网站合作、内容监督、商务咨询:QQ: 9576619
Copyright ? 2005--2008 中国建站之家版权所有
粤ICP备05092265号