例如:当一个用户在地址栏中输入http://www.csdn.net/f.rar
在他没登陆的时候会弹出“禁止下载,请先登陆!”的对话框

解决方案 »

  1.   

    不想用FORMS验证,还有其它的好方法吗?
      

  2.   

    HttpHandler?
    能详细说一下吗?
      

  3.   

    首先,在 IIS 里面将提供下载的文件的扩展名映射到 aspnet_isapi.dll,比如 .rar然后再在 Application_AcquireRequestState 里面验证 Session 判断用户是否已经登入。如果未登录则跳转至出错页面。
      

  4.   

    public class RARHandler:IHttpHandler,System.Web.SessionState.IRequiresSessionState
        {
            #region IHttpHandler 成员        public bool IsReusable
            {
                get { return true; }
            }        public void ProcessRequest(HttpContext context)
            {
                HttpRequest req = context.Request;
                //从Request对象中获取所请求文件的物理路径
                string RAR_Path = req.PhysicalPath;
                //设置HTTP输出的MIME类型
                string ContentType = "application/x-tar";
                //根据Session中UserName是否存在判断用户是否登陆
                if (context.Session["UserName"] == null)
                {
                    //未登陆则设置状态代码为404
                    context.Response.StatusCode = 404;
                    context.Response.End();
                }
                else
                {
                    //登陆则输出RAR文件
                    context.Response.StatusCode = 200;
                    context.Response.ContentType = ContentType;
                    context.Response.WriteFile(RAR_Path);
                }
            }        #endregion
        }
      

  5.   

    建议把下载资源额外放在一个虚拟目录里面,配置一个web.config 文件,用http handle还要占用一定资源了。网上的虚拟主机,未必会让你去配置IIS访问asp.net web 应用程序 有表单授权认证,windows认证, .passport认证==多种方式了。
    具体配置了打开默认的web.config文件
    <authorization>
    <deny users="?" />
    </authorization>
    禁止用户匿名访问
    <authentication mode="Forms">
    <forms name=".userlogin" loginUrl="Login.aspx" />
    </authentication>
    用户匿名访问被拒绝了以后 重定向到登陆页面。 .userlogin 是asp.net web 应用程序项目的名称了。
    在configuration节点下面添加一些允许匿名访问页面,就差不多了。
    <location path="Reg.aspx">
    <system.web>
    <authorization>
    <allow users="?" />
    </authorization>
    </system.web>
    </location>
    <location path="ForgetPwd.aspx">
    <system.web>
    <authorization>
    <allow users="?" />
    </authorization>
    </system.web>
    </location>
    <location path="Default.aspx">
    <system.web>
    <authorization>
    <allow users="?" />
    </authorization>
    </system.web>
    </location>
    ===========================================================================
    <authentication mode="Forms">
    <forms name=".userlogin" loginUrl="Login.aspx" />
    </authentication>
    <!--  授权 
               此节设置应用程序的授权策略。可以允许或拒绝不同的用户或角色访问
              应用程序资源。通配符: "*" 表示任何人,"?" 表示匿名
              (未经身份验证的)用户。
        -->
    <authorization>
    <deny users="?" />
    <!-- 允许所有用户 --><allow users="*" />
    <!--  <allow     users="[逗号分隔的用户列表]"
                                 roles="[逗号分隔的角色列表]"/>
                      <deny      users="[逗号分隔的用户列表]"
                                 roles="[逗号分隔的角色列表]"/>
                -->
    </authorization>想了解更多,就去msdn或者google一下 “web.config 表单验证”
      

  6.   

    http://blog.csdn.net/jxufewbt/archive/2006/09/12/1212579.aspx
      

  7.   

    使用form认证最好
    不用使用form认证,判断用户登陆否可以保存用户名到Session,如果比如session["name"]=null或者空就禁止他下载
    至于判断代码也可放到httpmodul或者httphandler中!
      

  8.   

    如果权限类型很多那就用form认证进行角色管理!否则要写大量代码,判断代码放到httpmodul或者httphandler中也省去每个下载连接都判断权限!
      

  9.   

    web.config   设置我试了,试不出来, 它只能是不允许没身份验证前访问ASPX文件, 而其它文件都是不需要验证就能访问下载到的。  为什么会这样?
      

  10.   

    web.config   设置我试了,试不出来, 它只能是不允许没身份验证前访问ASPX文件, 而其它文件都是不需要验证就能访问下载到的。  为什么会这样?
    ====================================================================================
    首先,在 IIS 里面将提供下载的文件的扩展名映射到 aspnet_isapi.dll,比如 .rar
      

  11.   

    ====================================================================================
    首先,在 IIS 里面将提供下载的文件的扩展名到 aspnet_isapi.dll,比如 .rar
    -------------------------------------------------------------
    如何做扩展名的映射??   我不是很清楚, 是否能把操作步骤说一下? 或是用外部什么命令?谢谢
      

  12.   


    web.config   设置我试了,试不出来, 它只能是不允许没身份验证前访问ASPX文件, 而其它文件都是不需要验证就能访问下载到的。  为什么会这样?
    ====================================================================================
    首先,在 IIS 里面将提供下载的文件的扩展名映射到 aspnet_isapi.dll,比如 .rar
    ----------------------------------------------------------------------------------
    我在IIS的Min类型中设置了RAR扩展名,  但是程序还是不需要验证就能下载RAR文件,  但ASPX文件的访问是受到了限制!  为什么、???
      

  13.   

    我在IIS的Min类型中设置了RAR扩展名,  但是程序还是不需要验证就能下载RAR文件,  但ASPX文件的访问是受到了限制!  为什么、???
    =================================
    iis->虚拟目录-〉应用程序设置-〉应用程序映射 添加*.rar 可执行文件\
    %winnt%\Microsoft.NET\Framework\vxxxxx\aspnet_isapi.dll
      

  14.   

    我在IIS的Min类型中设置了RAR扩展名,  但是程序还是不需要验证就能下载RAR文件,  但ASPX文件的访问是受到了限制!  为什么、???
    =================================
    iis->虚拟目录-〉应用程序设置-〉应用程序映射 添加*.rar 可执行文件\
    %winnt%\Microsoft.NET\Framework\vxxxxx\aspnet_isapi.dll
    ------------------------------------------------------------------------
    真是不好意思, 我还是看不明白如何操作设置。    我打开管理工具的IIS , 网站,虚拟目录后右点MOUSE 但没有发现" 应用程序设置“  呀!!!   在虚拟目录 属性里边也没找到“应用程序设置“谁能告诉我如何设置 操作????
      

  15.   

    我在IIS的Min类型中设置了RAR扩展名,  但是程序还是不需要验证就能下载RAR文件,  但ASPX文件的访问是受到了限制!  为什么、???
    =================================
    iis->虚拟目录-〉应用程序设置-〉应用程序映射 添加*.rar 可执行文件\
    %winnt%\Microsoft.NET\Framework\vxxxxx\aspnet_isapi.dll
    ------------------------------------------------------------------------
    真是不好意思, 我还是看不明白如何操作设置。    我打开管理工具的IIS , 网站,虚拟目录后右点MOUSE 但没有发现" 应用程序设置“  呀!!!   在虚拟目录 属性里边也没找到“应用程序设置“谁能告诉我如何设置 操作????
    我的是windows 2003 server
      

  16.   

    我在IIS的Min类型中设置了RAR扩展名,  但是程序还是不需要验证就能下载RAR文件,  但ASPX文件的访问是受到了限制!  为什么、???
    =================================
    iis->虚拟目录-〉应用程序设置-〉应用程序映射 添加*.rar 可执行文件\
    %winnt%\Microsoft.NET\Framework\vxxxxx\aspnet_isapi.dll
    ------------------------------------------------------------------------
    真是不好意思, 我还是看不明白如何操作设置。    我打开管理工具的IIS , 网站,虚拟目录后右点MOUSE 但没有发现" 应用程序设置“  呀!!!   在虚拟目录 属性里边也没找到“应用程序设置“谁能告诉我如何设置 操作????
    我的是windows 2003 server
      

  17.   

    无语,IIS基本操作
    右点-〉属性
      

  18.   

    我在IIS的Min类型中设置了RAR扩展名,  但是程序还是不需要验证就能下载RAR文件,  但ASPX文件的访问是受到了限制!  为什么、???
    =================================
    iis->虚拟目录-〉应用程序设置-〉应用程序映射 添加*.rar 可执行文件\
    %winnt%\Microsoft.NET\Framework\vxxxxx\aspnet_isapi.dll
    ------------------------------------------------------------------------
    真是不好意思, 我还是看不明白如何操作设置。    我打开管理工具的IIS , 网站,虚拟目录后右点MOUSE 但没有发现" 应用程序设置“  呀!!!   在虚拟目录 属性里边也没找到“应用程序设置“谁能告诉我如何设置 操作????
    我的是windows 2003 server
      

  19.   

    我在IIS的Min类型中设置了RAR扩展名,  但是程序还是不需要验证就能下载RAR文件,  但ASPX文件的访问是受到了限制!  为什么、???
    =================================
    iis->虚拟目录-〉应用程序设置-〉应用程序映射 添加*.rar 可执行文件\
    %winnt%\Microsoft.NET\Framework\vxxxxx\aspnet_isapi.dll
    ------------------------------------------------------------------------
    真是不好意思, 我还是看不明白如何操作设置。    我打开管理工具的IIS , 网站,虚拟目录后右点MOUSE 但没有发现" 应用程序设置“  呀!!!   在虚拟目录 属性里边也没找到“应用程序设置“  而设IIS属性里边的HTTP头的MIME类型不起作用!!!
     
    谁能告诉我如何设置 操作???? 请将步骤讲清楚好吗?
    我的是windows 2003 server
      

  20.   

    为什么没人能手把手的告诉我这个解决方法?
    我在IIS的Min类型中设置了RAR扩展名,  但是程序还是不需要验证就能下载RAR文件,  但ASPX文件的访问是受到了限制!  为什么、???
    ===================================================================================
    iis->虚拟目录-〉应用程序设置-〉应用程序映射 添加*.rar 可执行文件\
    %winnt%\Microsoft.NET\Framework\vxxxxx\aspnet_isapi.dll
    ------------------------------------------------------------------------
    真是不好意思, 我还是看不明白如何操作设置。    我打开管理工具的IIS , 网站,虚拟目录后右点MOUSE 但没有发现" 应用程序设置“  呀!!!   在虚拟目录 属性里边也没找到“应用程序设置“  而设IIS属性里边的HTTP头的MIME类型不起作用!!!
     
    谁能告诉我如何设置 操作???? 请将步骤讲清楚好吗?
    我的是windows 2003 server
      

  21.   

    iis->虚拟目录-〉应用程序设置-〉应用程序映射 添加*.rar 可执行文件\
    %winnt%\Microsoft.NET\Framework\vxxxxx\aspnet_isapi.dll
    ------------------------------------------------------------------------
    疑问: 1: IIS 打开后哪里有"虚拟目录"选择项? 只要创建虚拟目录或选择已经建好的虚拟目录。   
          2: “应用程序映射” 在哪里选择?  在虚拟目录属性中并未有这个选项呀!      最后希望能把问题说清楚。   我的系统是windows 2003  server
      

  22.   


    iis->虚拟目录-〉应用程序设置-〉应用程序映射 添加*.rar 可执行文件\
    %winnt%\Microsoft.NET\Framework\vxxxxx\aspnet_isapi.dll
    ------------------------------------------------------------------------正确的设置方法是这样的:
    iis->网站-->虚拟目录-->属性-->目录-->配置(G)...-->应用程序扩展名--〉应用程序映射 添加扩展名RAR 可执行文件\
    %winnt%\Microsoft.NET\Framework\vxxxxx\aspnet_isapi.dll
      

  23.   

    http://www.sjwxzy.com/read.php?tid=252052&page=e&#a帮我把这个文件下载并发给我好吗,油箱[email protected]谢谢