读书人

[文件下载]在没有登陆的情况下不允许

发布时间: 2012-03-04 11:13:34 作者: rapoo

[文件下载]在没有登陆的情况下不允许用户下载文件,即使他有下载文件的URL
例如:当一个用户在地址栏中输入http://www.csdn.net/f.rar
在他没登陆的时候会弹出“禁止下载,请先登陆!”的对话框

[解决办法]
可以使用form认证,就可以了
[解决办法]
forms
[解决办法]
做个HttpHandler:)
[解决办法]
赞成 LoveCherry 的方法
[解决办法]
up
[解决办法]
首先,在 IIS 里面将提供下载的文件的扩展名映射到 aspnet_isapi.dll,比如 .rar

然后再在 Application_AcquireRequestState 里面验证 Session 判断用户是否已经登入。如果未登录则跳转至出错页面。
[解决办法]
我已经在我自己的机器上试验成功了。LZ试试看。
[解决办法]
搜索下URL重写就知道了
[解决办法]
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
}
[解决办法]
建议把下载资源额外放在一个虚拟目录里面,配置一个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 表单验证”
[解决办法]
学习了
[解决办法]
学习了
[解决办法]
http://blog.csdn.net/jxufewbt/archive/2006/09/12/1212579.aspx
[解决办法]
学习
[解决办法]
学习!
[解决办法]
up
[解决办法]
学习@
[解决办法]
使用form认证最好
不用使用form认证,判断用户登陆否可以保存用户名到Session,如果比如session[ "name "]=null或者空就禁止他下载
至于判断代码也可放到httpmodul或者httphandler中!
[解决办法]
用session判断
[解决办法]
web.config 设置我试了,试不出来, 它只能是不允许没身份验证前访问ASPX文件, 而其它文件都是不需要验证就能访问下载到的。 为什么会这样?
[解决办法]
web.config 设置我试了,试不出来, 它只能是不允许没身份验证前访问ASPX文件, 而其它文件都是不需要验证就能访问下载到的。 为什么会这样?
====================================================================================
首先,在 IIS 里面将提供下载的文件的扩展名映射到 aspnet_isapi.dll,比如 .rar
[解决办法]

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


----------------------------------------------


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


%winnt%\Microsoft.NET\Framework\vxxxxx\aspnet_isapi.dll
------------------------------------


真是不好意思, 我还是看不明白如何操作设置。 我打开管理工具的IIS , 网站,虚拟目录后右点MOUSE 但没有发现 " 应用程序设置“ 呀!!! 在虚拟目录 属性里边也没找到“应用程序设置“

谁能告诉我如何设置 操作????
[解决办法]
mark
[解决办法]
mark

读书人网 >asp.net

热点推荐