日期:2014-05-17  浏览次数:20616 次

点击一文件时,若是匿名用户,则被重定向到登陆页面,该怎么做?
在一个页面上有收件人、发件人、附件、时间等,附件是用的一个HyperLink控件,如<asp:HyperLink ID="hplFujian" runat="server" NavigateUrl='<%# Eval("CooperID","~/secret/FileHandler.ashx?CooperID={0}") %>' Text='<%# Eval("UploadPath") %>'>HyperLink</asp:HyperLink>,我想让附件的路径是一堆乱码,当匿名用户点击该附件时,被重定向到登陆页面,只有合法用户才能进入。该怎么做?
  我只能做到把该页面及FileHandler.ashx放到一个文件夹中,并在该文件夹中放一个配置文件web.config,即
<?xml version="1.0"?>
<configuration>
  <system.web>
  <authorization>
  <allow users="admin"/>
  <deny users="*"/>
  </authorization>
  </system.web>
</configuration>
,以保证匿名用户不能进入,该如何把附件保存成一堆乱码呢,我认为是让FileHandler.ashx的路径成为乱码,可是把FileHandler.ashx放到文件夹中后,总是说FileHandler.ashx不存在。还有重定向到登陆页面该怎么做?

 

------解决方案--------------------
那你可以这样子,建一个a.aspx页面,所有的附件下载指向这个页面,只不过传入参数名
如a.aspx?path=a.rar,在a.aspx里判断是否登录,若是登录了,则用Binary去读取文件,Response.BinaryWrite()