讨论一个文件下载控制的问题!顺便散分!

尚和空四 2005-12-09 01:36:54
近来比较闲
想了好长时间准备做的一个东东。
我在服务器上放文件时,对应特定的客户, 有特定的文件目录,也只有这个用户对目录有权限。
操作系统也有这个用户
就是下载时,要检验一下web程序的下载权限。同时到下载文件是再验证一下系统的权限。
web程序和操作系统用户的用户名和密码都是在建用户是同时建好的。

感觉没有讲明白。
也就是下载时两次验证。asp控制一下。操作系统验证一下,可以和Ftp用户统一起来的。

不知道有没有那位老大搞过。

通过web创建目录,建系统用户 改系统目录权限,都已经做好,就是下载时如何两次验证还没有好的思路,请发言。
...全文
242 16 打赏 收藏 转发到动态 举报
写回复
用AI写文章
16 条回复
切换为时间正序
请发表友善的回复…
发表回复
尚和空四 2006-03-15
  • 打赏
  • 举报
回复
<%
Dim Stream
Dim Contents
Dim FileName
Dim FileExt
Const adTypeBinary = 1
FileName = Request.QueryString("FileName")
if FileName = "" Then
Response.Write "无效文件名."
Response.End
End if
' 下面是不希望下载的文件
FileExt = Mid(FileName, InStrRev(FileName, ".") + 1)
Select Case UCase(FileExt)
Case "ASP", "ASA", "ASPX", "ASAX", "MDB"
Response.Write "受保护文件,不能下载."
Response.End
End Select
' 下载这个文件
Response.Clear
Response.ContentType = "application/octet-stream"
Response.AddHeader "content-disposition", "attachment; filename=" & FileName
Set Stream = server.CreateObject("ADODB.Stream")
Stream.Type = adTypeBinary
Stream.Open
Stream.LoadFromFile Server.MapPath(FileName)
While Not Stream.EOS
Response.BinaryWrite Stream.Read(1024 * 64)
Wend
Stream.Close
Set Stream = Nothing
Response.Flush
Response.End
%>
尚和空四 2005-12-20
  • 打赏
  • 举报
回复
对 有个断点续传的问题
有aspsmart控制下载时也是不支持

  • 打赏
  • 举报
回复
是的,以前光想到隐藏了
patchclass 2005-12-17
  • 打赏
  • 举报
回复
superdullwolf(超级大笨狼,每天要自强,MVP)
的方法会超时的吧,而且不支持断点续传,对于大文件可能无效
超级大笨狼 2005-12-15
  • 打赏
  • 举报
回复
这样结合数据库控制权限,并且隐藏真实地址。
<%
Dim Stream
Dim Contents
Dim FileName
Dim FileExt
Const adTypeBinary = 1
FileName = Request.QueryString("FileName")
if FileName = "" Then
Response.Write "无效文件名."
Response.End
End if
' 下面是不希望下载的文件
FileExt = Mid(FileName, InStrRev(FileName, ".") + 1)
Select Case UCase(FileExt)
Case "ASP", "ASA", "ASPX", "ASAX", "MDB"
Response.Write "受保护文件,不能下载."
Response.End
End Select
' 下载这个文件
Response.Clear
Response.ContentType = "application/octet-stream"
Response.AddHeader "content-disposition", "attachment; filename=" & FileName
Set Stream = server.CreateObject("ADODB.Stream")
Stream.Type = adTypeBinary
Stream.Open
Stream.LoadFromFile Server.MapPath(FileName)
While Not Stream.EOS
Response.BinaryWrite Stream.Read(1024 * 64)
Wend
Stream.Close
Set Stream = Nothing
Response.Flush
Response.End
%>
尚和空四 2005-12-15
  • 打赏
  • 举报
回复
再挺
尚和空四 2005-12-12
  • 打赏
  • 举报
回复
tjoy7d 2005-12-09
  • 打赏
  • 举报
回复
学习
yopy 2005-12-09
  • 打赏
  • 举报
回复
学习学习,好好学习!!
呵呵
rimguncheng 2005-12-09
  • 打赏
  • 举报
回复
好东西要学
lnboy1003 2005-12-09
  • 打赏
  • 举报
回复
学习顶
ybfqlyq 2005-12-09
  • 打赏
  • 举报
回复
學習。。接分。
  • 打赏
  • 举报
回复
<script language='vbscript'>
Dim arrNames()
intSize = 0

Set objGroup = GetObject("LDAP://CN=Accountants,OU=Finance,DC=fabrikam,DC=com")

For Each strUser in objGroup.Member
Set objUser = GetObject("LDAP://" & strUser)
ReDim Preserve arrNames(intSize)
arrNames(intSize) = objUser.CN
intSize = intSize + 1
Next

For i = (UBound(arrNames) - 1) to 0 Step -1
For j= 0 to i
If UCase(arrNames(j)) > UCase(arrNames(j+1)) Then
strHolder = arrNames(j+1)
arrNames(j+1) = arrNames(j)
arrNames(j) = strHolder
End If
Next
Next

For Each strName in arrNames
alert(strName)
Next

</script>

保存成xxx.hta运行一下看看,不过你要把关于adsi的几个参数改一下
尚和空四 2005-12-09
  • 打赏
  • 举报
回复
呵呵兔子老大来了

兔子所到之地会有狼的出现

笨狼也快要来了

我会去查些相关资料的

谢谢提示。
  • 打赏
  • 举报
回复
ftp是server_u用数据库控制,这样的话你就有办法同时控制了
  • 打赏
  • 举报
回复
这个我以前给别人说过用wmi控制,如果需要代码也可以找到的

28,406

社区成员

发帖
与我相关
我的任务
社区描述
ASP即Active Server Pages,是Microsoft公司开发的服务器端脚本环境。
社区管理员
  • ASP
  • 无·法
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧