CSDN首页 空间 新闻 论坛 Blog 下载 读书 网摘 搜索 .NET Java 视频 接项目 求职 在线学习 买书 程序员 通知
山寨机中的战斗机! 程序优化工程师到底对IT界有没有贡献
CSDN社区
搜索 收藏 打印 关闭
CSDN社区 >  .NET技术 >  ASP.NET

如何限制存放在网站子文件夹里的图片,只供通过了验证的会员浏览?

楼主bbla()2005-03-02 11:02:04 在 .NET技术 / ASP.NET 提问

如何限制存放在网站子文件夹里的图片,只供通过了验证的会员浏览?  
  我们正在做一个OA系统。有很多图片涉及到商业秘密,所以需要对它们进行保护。服务器为IIS6和VB.NET,使用SSL方式。  
   
  请高手们赐教,尽可能详细一点。谢谢! 问题点数:50、回复次数:22Top

1 楼menuvb(戏子,白日做梦)回复于 2005-03-02 11:12:12 得分 0

jfTop

2 楼menuvb(戏子,白日做梦)回复于 2005-03-02 11:14:41 得分 5

只要你认为你的系统吃的消,可以使用IHttpHandler   接口来实现你的要求  
   
  另外一种方法我没测试过,也不知道行不行。所以不好说:)Top

3 楼zyug(LovlyPuppy)回复于 2005-03-02 11:35:44 得分 5

我不会,帮你顶Top

4 楼bbla()回复于 2005-03-02 11:36:34 得分 0

嘿嘿。没有用过IHttpHandler呢。不知道如何实现,系统消耗有多大?  
  要请教楼上Top

5 楼luckyprg(lucky)回复于 2005-03-02 11:38:00 得分 5

就是自己重写Http请求处理。Top

6 楼bbla()回复于 2005-03-05 08:39:29 得分 0

请高手现身啊。  
  还有,我到处找,都没有找到有关IRequiresSessionState的用法。谁能给一个示例吗?  
  Top

7 楼wg88888(温柔一刀)回复于 2005-03-05 08:58:50 得分 5

应该通过修改Web.config中的权限控制方式实现。Top

8 楼bbla()回复于 2005-03-05 11:29:12 得分 0

我是新手,请大家指教。  
  有两个问题,一个是如何重写一个ASP.NET(VB.NET)程序,将一个JPG文件以流方式应答给浏览器。另一个是,如何在这之前进行Session状态判断,True则执行前一步,False则提示错误或跳转登录程序。Top

9 楼xiaoniaofei(xiaoniao)回复于 2005-03-05 12:04:39 得分 5

自己做个映射!!然后,在web.config中配置  
   
  <httpHandler>  
      <add   verb="*"   path="*.jpg"   type="类名,dll文件名">  
  </httpHandler>  
   
  在类中,控制他有没有权限访问!  
  其实就是UrlRewriteTop

10 楼flyye_cs(一叶孤舟)回复于 2005-03-06 15:49:23 得分 5

如果图片是放到数据库里的,应该可以很好控制Top

11 楼bbla()回复于 2005-03-06 16:16:13 得分 0

谢谢大家,将JPG文件应答给浏览器的问题,已经解决。参考代码为:  
                  Dim   x   As   Integer   =   3  
                  If   x   >   2   Then  
                          Try  
                                  Response.ContentType   =   "image/jpeg"  
   
                                  Dim   ImgName   As   String  
                                  ImgName   =   "img/"   &   Me.Request.QueryString("BID")   &   ".jpg"  
   
                                  Dim   strFilename   As   String  
                                  Dim   i   As   System.Drawing.Image  
                                  strFilename   =   Server.MapPath(ImgName)  
   
                                  Dim   ImgSize   As   Long   =   FileLen(strFilename)     '通过FileLen函数检查文件是否存在。如果不存在,运行到这里将抛出一个异常  
                                  i   =   System.Drawing.Image.FromFile(strFilename)  
   
                                  Dim   b   As   New   System.drawing.Bitmap(i.Width,   i.Height,   PixelFormat.Format24bppRgb)  
                                  Dim   g   As   Graphics   =   Graphics.FromImage(b)  
   
                                  g.DrawImage(i,   New   Point(0,   0))  
   
                                  b.Save(Response.OutputStream,   ImageFormat.Jpeg)  
                                  b.Dispose()  
                          Catch   ex   As   Exception  
                                  Me.Response.Write("打开文件错误!")  
                                  'Me.Response.End()  
                          End   Try  
                  End   If  
   
   
  但是在按以下方式配置Web.config时出现问题。仍然可以在浏览器中用http://localhost/WebApplication2/csdn.jpg访问图片。如果将“*.jpg”改为“*.aspx”之类的,则没有问题。  
  <httpHandlers>  
            <add   verb="*"   path="*.jpg"   type="HandlerExample.MyHttpHandler,HandlerTest"/>  
  </httpHandlers>  
   
   
  苦恼中......Top

12 楼bbla()回复于 2005-03-06 16:31:41 得分 0

在解决这个问题的过程中,发现有另类方法,是否可行,提出给大家研究。  
  在解决了在ASPX程序里以Graphics.DrawImage方式显示图片的问题后,一个方法是,将JPG文件藏在一个大家难以发现的Web服务器的目录里;另一个方法是修改JPG文件的扩展名为*.vb等被IIS禁止的文件类型,浏览器访问这些文件时将提示错误信息“无法提供此类型的页”。Top

13 楼bbla()回复于 2005-03-06 18:09:26 得分 0

原来是没在IIS里做.jpg映射。Top

14 楼iamyibai()回复于 2005-03-08 11:21:27 得分 5

学习Top

15 楼bbla()回复于 2005-03-08 11:22:37 得分 0

现在遇到的问题是,我在写一个Namespace功能的VB时通不过VBC编译。  
   
  请教大侠,如何写一个以Graphics.DrawImage方式显示图片的Namespace?  
  谢谢!Top

16 楼huwei2003(凡)回复于 2005-03-08 11:54:13 得分 5

显示图片是不用真实路径就行了  
  显示图片用一个用户控件,在其它页面调用,再把该页urlrewriter,其它的用户权限控制写在程序里就行了Top

17 楼bbla()回复于 2005-03-08 15:25:35 得分 0

呵呵,不明白Top

18 楼bbla()回复于 2005-03-16 19:03:38 得分 0

已经完美解决。等稍歇下来的时候,我把操作步骤和程序代码全部贴上来。  
   
  看以前的帖子,发现CSDN里还是有高人的。但是,现在高手已经很少现身了,这直接影响了CSDN的论坛水平。Top

19 楼misng(沦落人)回复于 2005-04-23 11:47:33 得分 0

学习Top

20 楼Cry_Out(东北)回复于 2005-04-23 12:08:16 得分 0

学习Top

21 楼sp1234(asp.net不是一个语言,是一个操作系统)回复于 2005-04-23 12:36:46 得分 5

建议不要修改IIS影射。程序员只应该控制自己所属范围的资源。  
   
  输出   <img   src="myImage.aspx?id=50D3A9C8-669D-4147-9B3F-4522145849BE">   的形式隐藏图片文件和判断权限。Top

22 楼dTianx(铁锈)回复于 2005-04-23 14:00:43 得分 5

你可以看看form   认证  
  在web.config中:  
  <authentication   mode="Forms">  
  <forms   name="ModleCenterExpManSys"   loginUrl="logon.aspx"   timeout="90"/>  
  </authentication>  
  这样就可以保证认证用户才能访问了。  
  如果你的目录不需要认证:  
          <authorization>  
                  <allow   users="*"/>   <!--   允许所有用户   -->  
                          <!--     <allow           users="[逗号分隔的用户列表]"  
                                                            roles="[逗号分隔的角色列表]"/>  
                                      <deny             users="[逗号分隔的用户列表]"  
                                                            roles="[逗号分隔的角色列表]"/>  
                          -->  
          </authorization>Top

相关问题

  • 如何浏览文件夹?
  • 如何用VB6浏览文件夹?
  • 怎样浏览一个文件夹?
  • 有浏览文件夹的控件吗?
  • 求一个文件夹浏览类!!!
  • 浏览文件夹时如何定位到特定的文件夹?
  • 简单问题-如何让jdk编译后将*.class文件存放在指定文件夹
  • VS2005做网站时,项目中新建的CS类文件,为何必须存放在App_code文件夹下.
  • 如何创建“资源浏览器”->所有文件夹的TreeView。
  • “浏览文件夹”对话框是怎么调用的?

关键词

  • vb.net
  • 文件
  • 浏览器
  • 修改
  • 解决
  • 控制
  • 用户
  • vb
  • iis
  • me

得分解答快速导航

  • 帖主:bbla
  • menuvb
  • zyug
  • luckyprg
  • wg88888
  • xiaoniaofei
  • flyye_cs
  • iamyibai
  • huwei2003
  • sp1234
  • dTianx

相关链接

  • CSDN .NET频道
  • .NET类图书
  • C#类图书
  • .NET类源码下载

广告也精彩

反馈

请通过下述方式给我们反馈
反馈
提问
网站简介|广告服务|VIP资费标准|银行汇款帐号|网站地图|帮助|联系方式|诚聘英才|English|问题报告
北京创新乐知广告有限公司 版权所有, 京 ICP 证 070598 号
世纪乐知(北京)网络技术有限公司 提供技术支持
Copyright © 2000-2008, CSDN.NET, All Rights Reserved
GongshangLogo