一般都是用户验证登陆后才能下载文件,但是当用户通过了验证,如果他把下载文件的链接地址透露出去,那么其他人就可以直接复制路径下载了。
请问如何做到不让未登陆用户直接COPY路径就下载文件?
请问如何做到不让未登陆用户直接COPY路径就下载文件?
解决方案 »
- vs2010神秘问题
- 文件拷贝!高手来啊!
- c#执行sql存储过程,出了怪事。专家指教 在线等
- 菜鸟求助高手推荐几本书学习
- 同一页面二个服务器按钮,验证产生冲突了
- window.ModalDialog()和window.ModellessDialog()打开窗口不加载BHO
- 请大家帮忙,有关日历控件的问题!!!
- VB.NET能做到的事,C#.NET都能做到吗?
- wpf 多点触控的问题
- CSC编译时说找不到SYSTEM
- 文件流若只读不写发送文字信息出错,请问怎样解决?
- 由于将在索引、 主关键字、或关系中创建重复的值,请求对表的改变没有成功。 改变该字段中的或包含重复数据的字段中的数据,删除索引或重新定义索引以允许重复的值并再试一次。
思路如下:不能直接连接要下载的文件,使用文件流的方式直接输出到一个aspx页面,并且连接地址中需要加入一个验证的条件(可以是sessionid);在输入具体的内容之前,先验证。继续关注中...
{
if(checkSession())
{
Response.WriteLine("url")
}
}private bool CheckSession()
{
return Session["userId"] != null;
}
<httpModules>
<add name="HandleFile" type="F.HandleFile,HandleFile"/>
<add name="ScriptModule" type="System.Web.Handlers.ScriptModule, System.Web.Extensions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35"/>
</httpModules>HandleFile 就是你要处理的类. 通过这个类, 判断访问路径, 权限等.
if(IsLoginSucess)
{
this.Response.Clear();
this.Response.ContentType = "application/octet-stream";
this.Response.AddHeader("Content-Disposition", "attachment;filename=" + "文件名称");
this.Response.Flush();
this.Response.WriteFile("文件路径", false); //-- 下载文件
this.Response.End();
}