用ASP/ASP.NET实现网络空间管理

asp.net|网络

前言

  ⑴ 电子阅览室、计算机房、网吧等公共上机场所由于使用频繁、维护滞后等原因,输出系统如软驱等设备受损的现象普遍,往往在你需要将加工后的数据输出时才发现输出设备不能工作而大为光火,并且许多计算机房为了节省成本,在联网的计算机上并不配全必要的输出设备。

  ⑵ 电脑普及的同时使的人们对它的依赖越来越强,很多办公事务已经离不开电脑。换句话说,办公人员的电脑里开始存放着许多重要的办公与私人数据。而这些数据,在大多数情况下是唯一的,意即它们的拥有者并没有把它们做一份副本存放在不同的电脑上,其安全性完全取决于它们的拥有者的电脑的稳定性。

  ⑶ Internet的普及拉近了人们之间的距离,让人们交流变得更为便捷,但是我们每天需要在家庭、办公室、网吧等不同场所上网,怎样才能持续对某份文档进行编辑处理呢?或许通过优盘或者是移动硬盘之类的移动存储设备能够随身携带这些资料,不过随身多带一个这样的设备特别是移动硬盘总归不是很方便,而且不同的场所、不同的设备、不同的操作系统对优盘或移动硬盘的支持不尽相同,使用者的电脑水平也不尽相同。

  ……

  由于这些事实,使的网络存储作为一种需要登上了舞台。

  目前实现网络存储的方式有很多种,比如电子邮件、FTP、网上邻居、HTTP等等。其中,FTP功能最为强大,但使用起来却稍显复杂,一大堆设置足以让许多人望而止步,尤其用户数量不可预见时,针对特殊需求用户的设置将更加繁琐;电子邮件是大家所熟悉的了,但在局域网内部,财务、劳资等文件资料需通过这种方式交流不是好办法,而且,当你的文件足够大时对邮件空间是个致命冲击;网上邻居通过在本机上指定共享的Web文件夹并放置文件,一定范围内的用户可以访问到这些文件,然而这种方式使用的范围相当有限,通常在同一个DNS段地址内的用户才能顺利访问,其它尤其是Internet上的用户,很难使用,此外同电子邮件类似,它的使用也不直观,很多时候你不得不在许多列表计算机上一层层展开搜索才有可能获取你想要的资源! 以上所述这些网络存储方式还有一个共同的缺点:即管理员对存储在网络存储中的文件的使用情况无法有一个比较清晰的了解,只能根据文件的存储时间来决定是否对其进行空间清理。

  本文介绍一种通过HTTP实现的比较简单的网络存储方式。这种方式是在WINDOWS平台上通过IIS与ASP/ASP.NET来实现,不仅使用简单、可上载任意类型的文件,而且可以对使用者使用空间进行限制,一次传输小到20字节、大到几百兆都可以由管理者进行管理,另外,文件的安全性也得到了保障,只有文件拥有者及得到授权者才可回载文件。读懂本文第二大点中的数据结构及第三大点中的上传源码,将帮助你自己做一个网络存储,你就不必依赖于市场上提供的免费网络存储,使网络内部的敏感数据文件的安全牢牢掌握在自己手中。

  概述与基本功能

  安装一台作为网络存储宿主的服务器,操作系统采用windows平台,配套IIS5.0,设置好WEB服务,在主网站下建立一个虚拟网站,指向网络存储,如:d:\netspace\spacenet\myspace。所有的asp及asp.net源码放置在主网站(如:c:\inetpub\wwwroot)下,d:\netspace\spacenet\myspace下将放置用户上传的文件(虚拟网站改变,在源码中也应作相应调整)。

  1、用到的基本数据库及结构:

  ⑴ ftpsapce.mdb: 拥有表userlist, 表基本结构:

  Id:顺序号,自动生成;
  Xh:用户帐号,注册及验证生成;
  Xm:用户姓名,注册及验证生成;
  Kl:用户口令,注册及验证生成;
  Maxspace:用户空间最高限额,注册取默认值,管理员可以通过管理重设定;
  Nowspace:用户目前占用空间的数量;
  Lastaccessday:用户最近一次存取时间,供管理员管理空间时参考;
  Fromday:用户注册时间;
  Checkx:用户验证已否标志。

  ⑵ Filelist.mdb:拥有表files,表基本结构:

  Id:顺序号,自动生成;
  Filename:文件名,上载系统判断生成;
  Fsize:文件大小数值;
  Xh:用户帐号;
  Upday:上载时间;
  Filescript:文件描述,是用户上载时的文件的路径及原文件名,供用户加载时参考;

  2、基本功能

  ⑴ 用户登录主网站,进入网站主页面,给出用户基本资料进行用户注册。

  ⑵ 管理员根据用户注册资料予以审核,设定用户最大使用空间。

  ⑶ 审核通过的用户上传文件到网络存储。系统判定用户合法性及文件合法性,在数据库中对用户上传的文件及用户资料进行登记。

  ⑷ 审核过的用户通过下载功能对自己上传的文件进行回载或删除。

  ⑸ 管理员根据用户数据库及文件数据库对网络空间进行管理。

  ⑹ 扩展过的系统允许得到授权的用户对授权用户的上传文件进行下载。

  上载模块基本源码

  限于篇幅,本文仅给出上载模块的基本源码,需要更多源码可通过E-mail向作者索取,源码中以***开头的行是作者为了读者阅读方便而加上的注释。(以下摘自 upfile.aspx)

<%@ Page Language="VB" Debug="true" %>
<%@ import namespace="System.Data" %>
<%@ import namespace="System.Data.oledb" %>
<html>
<script language="vbscript" runat="server">
sub uploadfile(sender as object, e as eventargs)
 if fileup.postedfile.contentlength<20 then
  errors.text="这么小的文件也要上传,背背就可以了."
  fileinfo.visible=false
  exit sub
 else
  errors.text="检验正常"
  fileinfo.visible=true
end if

*** 以上检查上传文件大小
respace.text="0"
nowspace.text="0"

*** respace指剩余空间,nowspace指已用空间

dim xh1 as string =user1.value
dim kl1 as string =pass1.value

*** xh1指帐号,kl1指口令

dim objconnstr as string="provider=microsoft.jet.oledb.4.0;data source="
& server.mappath("ftpspace.mdb")

*** 以上两行在源码中应为同一语句

dim objconn as oledbconnection = new oledbconnection(objconnstr)
dim sql1 as string="select * from userlist where xh='"+xh1+"' and kl='"+kl1+"'"
dim objrscc as oledbcommand= new oledbcommand(sql1,objconn)
objconn.open()
dim objrs as oledbdatareader = objrscc.executereader()
dim ix as integer=0
dim maxs as long
dim nows as long
while ix=0
 if objrs.read() then
  if objrs.item("xh")=xh1 then
   if objrs.item("kl")=kl1 then
    if objrs.item("checkx")=1 then
     ix=ix+1
     maxs=objrs.item("maxspace")
     nows=objrs.item("nowspace")
    end if
   end if
  end if
 else
  ix=-1
 end if
end while

*** 以上判定帐号与口令是否合法

if ix<=0 then
 errors.text="帐号口令错!或用户尚未通过认证,请等待管理员认证!"
else

if fileup.postedfile.contentlength>maxs-nows then
 if fileup.postedfile.contentlength>=maxs then
  errors.text="文件长度大于赋予空间大小,不能上传!"
 else
  errors.text="可用空间不足,请删除旧文件!"
 end if

*** 以上判定用户空间的可用性
else
 dim obj4str as string="provider=microsoft.jet.oledb.4.0;
 data source=" & server.mappath("filelist.mdb")

*** 以上两行在源码中为同一语句
 dim obj4 as oledbconnection = new oledbconnection(obj4str)
 dim sql10 as string="select * from files"
 dim objrc1 as oledbcommand= new oledbcommand(sql10,obj4)
 obj4.open()
 dim objrsx as oledbdatareader = objrc1.executereader()
 dim fn11 as long =0
 while objrsx.read()
  fn11=objrsx("filename")
 end while
 dim fn1 as string
 fn1=cstr(fn11+1)

*** 以上为用户上传文件起一个唯一的主文件名
 dim objc1str as string="provider=microsoft.jet.oledb.4.0;
 data source=" & server.mappath("filelist.mdb")

*** 以上两行在源码中为同一语句
 dim objc1 as oledbconnection = new oledbconnection(objc1str)
 dim sql3 as string="insert into files(filename,fsize, xh,filescript,upday)
values("+cstr(fn1)+","+cstr(fileup.postedfile.contentlength)+",'"
+xh1+"','"+fileup.postedfile.filename+"','"+cstr(now())+"')"

*** 以上三行在源码中为同一语句
 objc1.open()
 dim objrs1 as oledbcommand=new oledbcommand(sql3,objc1)
 dim fn2 as string
 fn2="d:/netspace/spacenet/myspace/"&cstr(fn1)&".zip"

*** 给出用户上传文件的绝对路径及完整文件名
 fsize.text=cstr(fileup.postedfile.contentlength)
 ftype.text=fileup.postedfile.contenttype
 fname.text=fileup.postedfile.filename
 username.text=user1.value
 fileup.postedfile.saveas(fn2)
 objrs1.ExecuteNonQuery()
 objrs.close
 dim sql5 as string="update userlist set nowspace ="+cstr(nows+fileup.postedfile.contentlength)+
",lastaccessday='"+cstr(now())+"' where xh='"+xh1+"'"

*** 以上两行在源码中为同一语句

  dim objrnc as oledbcommand= new oledbcommand(sql5,objconn)
 objrnc.executenonquery()
 respace.text=cstr(maxs-nows-fileup.postedfile.contentlength)&"字节."
 nowspace.text=cstr(nows+fileup.postedfile.contentlength)&"字节."

*** 以上作上传动作,并计算用户的已用总空间及剩余总空间
 end if
end if
end sub
</script>
<body>
<form enctype="multipart/form-data" runat="server">
<table>
<tr><td>帐号:</td><td><input id="user1" runat="server"></td></tr>
<tr><td>口令:</td><td><input type="password" id="pass1" runat="server"></td></tr>
<tr><td>文件:</td><td><input type="file" id="fileup" runat="server"></td></tr>
<tr><td></td><td><asp:button id="upload" text="上传"
runat="server"/></td></tr>
</table>
</form><hr>
<div id="fileinfo" visible="false" runat="server">
原文件名:<asp:label id="fname" runat="server"/><br>
字节大小:<asp:label id="fsize" runat="server"/><br>
文件类型:<asp:label id="ftype" runat="server"/><br>
用户帐号:<asp:label id="username" runat="server"/><br>
剩余空间:<asp:label id="respace" runat="server"/><br>
已用空间:<asp:label id="nowspace" runat="server"/><br>
上传状态:<asp:label id="errors" runat="server"/>
</div>
*** 以上在浏览器中告诉用户文件上传前后的相关信息
</body>
</html>
  结束语

  本文所述的方法基于无组件技术,在文件的安全性及个人隐私方面考虑的比较多,最适合在windows server 2003配合IIS6.0平台上使用,方法简单安全,稍加扩展,如在userlist里添加用户号、组号,在files里添加组号,即可对文件的权限进行设定,可方便实现文件的网络提交、验证、共享。配合磁盘阵列,则在数据安全方面将有质的提升。

时间: 2024-09-12 07:46:06

用ASP/ASP.NET实现网络空间管理的相关文章

用ASP.NET实现网络空间管理

asp.net|网络     一.程序功能:为Repeater实现分页        二.窗体设计:        1.新建ASP.net Web应用程序,命名为Repeater2,保存路径为http://192.168.0.1/Repeater2(注:我机子上的网站的IP是192.168.0.1的主目录是D:\web文件夹)然后点击确定.        2.向窗体添加一个3行一列的表,向表的第一行中添加一个Repeater控件,向表的第二行中添加两个Label控件向表的第三行中添加四个Butt

国内首款基于asp.net技术开发的服务器管理软件

数据王服务器系列软件是国内首款基于asp.net技术开发的服务器管理软件.本系列软件是由沈阳泷泉信息技术有限公司独立自助开发完成,我司是一家以asp.net为主的技术型公司,我们的团队不仅汇集了国内顶尖的.net程序员和专业级的美工 更有着雄厚的资金及技术实力,立志做中国最优秀的服务器软件供应商. 目前本系列软件已正式发布两款,数据王域名虚拟主机管理系统,数据王IIS还原备份专家! 数据王域名虚拟主机管理系统 全球首创三个第一 第一个让虚拟主机用户支持防盗链 可自定义需要防盗的文件扩展名及被盗时

用ASP开发基于浏览器的文档数据库管理软件

浏览器|数据|数据库|浏览器 文档数据库是internet/intranet应用的重要组成部分.用手工维护站点的文档和链接,管理员要有一点web方面的技术背景才能胜任,随着站点规模的扩大,需要维护的文档越来越多,难免有力不从心的感觉.使用文档数据库则有明显不同的效果,管理员用它可以轻松应付成千上万篇文档的维护和管理,用户发布.查询.浏览文档也更加方便快捷. 笔者使用微软的ASP技术(Active Server Page,一种可取代CGI的服务器端动态web网页),开发了基于浏览器的文档数据库管理

asp,php,asp.net+mysql+access免费空间

┝用户类型:免费空间 ┝空间容量:80M ┝提供域名:http://free.fjmn.com/yourname ┝二级域名:× ┝FTP权限:× ┝ASP权限:√ ┝单个文件大小:≤4024 K 网站首页:http://www.fjmn.com 申请地址:http://go.fjmn.com/space_info.asp?id=1 免费空间性能: 长大5年的无广告免费空间,推荐网通用户:50M ASP+ACCESS 可绑顶级域名 送18wa.com二级域名 强大的自主管理控制面板 更多功能申请

国内外免费asp asp.net免费空间[8款]

  本文章汇集了现在国内外比较常用的几款asp asp.net网站空间,有无广告与流量以及无iis限制的空间. Somee国外免费asp空间,支持Access数据库/ftp上传 地址:http://www.somee.com 支持ASP.ASP.NET 1.1&2.0.MS Access数据库,ftp方式上传管理文件 Titanichost免费asp空间,支持MS Access/SQL数据库 地址:http://www.titanichost.com 100M免费asp空间,每月无流量限制,we

免费100mb asp/asp.net/php/mysql网页空间

miarroba.com免费提供100M网页空间,不限制流量,单个文件最大限制5M,支持PHP5,免费提供MYSQL数据库,支持FTP和Web方式上传管理文件,可自定义404错误页面,提供一个免费二级域名,但不支持绑定自己的域名,无广告. 注:每个用户可以申请5个免费空间. 申请地址:http://miarroba.com 免费空间 免费空间:100M 支持脚本:ASP/ASP.net(1.1)/PHP 流量限制:无 CPU限制:2% 网络带宽:512kbps FTP上传:支持 子目录绑定:不支

asp.net开发类似于qq空间中我的动态,好友动态 的数据库设计

问题描述 asp.net开发类似于qq空间中我的动态,好友动态的数据库设计,比如好友动态中,有好友发表了心情,日志,分享了某某日志,照片,转载了某某日志,心情,相片,好友与某某成为好友关系,好友参加某某活动等 解决方案 解决方案二:该回复于2011-11-07 10:22:51被版主删除解决方案三:首先用户产生了动态,放到动态表feed里,里面有动态的产生者,动态的内容,动态的APPID等.同时,把这条动态的ID放入队列queue里,也就是我们常说的消息队列,队列可以是memory表,可以是me

支持asp/asp.net 100M空间

申请网址:http://www.cf35.com/NewsShow.asp?id=12 他们的声明: 详细请参见:http://bbs.easyopen.cn/ShowForum.asp?ForumID=14 申请EOIDC.com的免费主机步骤: 申请网址:http://home.91zc.com 91注册网提供免费50M/ASP空间申请,即时申请就开通,之后需要去论坛发贴申请开通FTP才能正常使用,空间支持HTML.ASP.FSO.ACCESS等,支持FTP上传,空间很适合无任何网页设计基础

免费 asp,net,php mysql网站空间/500M

开通要求:1.网站合法 2.网站备案 3.顶级域名 不予开通类型:赌博 图片 色情 等违法站点一律关闭  空间大小:500M IIS:不限 流量:不限 数据库:100M 支持语言:asp asp.net PHP 以及常用组件 (免费空间有广告 这款空间可到论坛发贴申请,下面是申请地址.   申请地址:http://bbs.0018.com.cn/freee/list-1.aspx