C#文件授权下载

1、创建HttpHandler


using System;
using System.Collections.Generic;
using System.Text;
using System.Web;
namespace Handler
{
public class DownloadHandler : IHttpHandler
{
public bool IsReusable
{
get { return true; }
}

public void ProcessRequest(HttpContext context)
{

//context.Response.Write(context.Request.Url.ToString());
context.Response.Write("<h1><b>您没有权限访问此文件,请联系网站管理员!</b></h1>");
context.Response.End();

}
}
}

2、配置iis,其中path处填写你要授权访问的文件类型,多个用‘,‘分割

    <httpHandlers>
<add verb="*" path="*.rar" type="Hander.DownloadHander, Hander"/>
</httpHandlers>

3、在下载页面内添加如下方法


      protected void Page_Load(object sender, EventArgs e)
{
//执行权限判断,如果拥有权限则执行下载

bool b = IsCanDown();

if (b)
{
string path = Request.QueryString["file"] != null ? Request.QueryString["file"] : "/upload/day_20140312/留言板.rar";

get_file(path);

}
}

private bool IsCanDown()
{
//处理逻辑
return true;
}

private void get_file(string path)
{
//string path = Request.QueryString["file"];
string filePath = Server.MapPath(path);//路径
string filename = Path.GetFileName(filePath);

FileInfo fileInfo = new FileInfo(filePath);
Response.Clear();
Response.ClearContent();
Response.ClearHeaders();
Response.AddHeader("Content-Disposition", "attachment;filename=" + filename);
Response.AddHeader("Content-Length", fileInfo.Length.ToString());
Response.AddHeader("Content-Transfer-Encoding", "binary");
Response.ContentType = "application/octet-stream";
Response.ContentEncoding = System.Text.Encoding.GetEncoding("gb2312");
Response.WriteFile(fileInfo.FullName);
Response.Flush();
Response.End();
}

C#文件授权下载,布布扣,bubuko.com

时间: 2024-07-29 12:44:26

C#文件授权下载的相关文章

解析FTP服务(文件的下载、上传)

FTP服务和文件共享服务的区别在于,文件共享服务只可以用于局域网,而FTP服务既可以用于局域网也可以用于广域网.如何搭建FTP: 第一步:服务管理器第二步:点击添加角色第三步:选择Web服务第四步:在角色服务界面添加FTP服务器(如果不添加此服务则无法使用FTP功能)第五步:点击安装(操作如下)进入服务管理器IIS管理器第一步:右键点击服务器第二步:选择添加FTP站点第三步:输入站点名称(例:yun),选择路径:E:\yunsit作为站点供上传和下载(此文件夹提前创建好)第四步:绑定和SSL设置

腾讯对象存储服务COS加密签名上传文件与下载文件的剖析,福利提供给所有使用Android的小伙伴们!

在做一些用户需求的时候,公司往往需要工程师采集到更多有用的关于用户的个人信息,然后对用户群进行分析,今天我不是来分析这些的,今天我主要是说 腾讯推出的款云产品,那就是对象存储服务COS,这个产品面向所有开发者,新用户都有免费享有10G的使用权,10G可能对于做方案的工程师来说可能是微不 足道的,比如后视镜和车载方案,会常常需要用到视频的存储与云分享,当然这里不是只本地存储哦,我指的是用户在使用方案商的方案的时候,比如他开车 的时候录了一段视频需要分享到某个域,共享给大家看,比如微信,这时候他肯定

iOS开发之网络编程--使用NSURLConnection实现大文件断点续传下载+使用输出流代替文件句柄

前言:本篇讲解,在前篇iOS开发之网络编程--使用NSURLConnection实现大文件断点续传下载的基础上,使用输出流代替文件句柄实现大文件断点续传.    在实际开发中,输入输出流用的比较少,但是用起来也是很方便的.iOS开发用到的输入输出流和在Java中的输入输出流是几乎一样的,本质也是一个意思:将网络返回的数据当做流来处理.    输入输出的理解:输入到哪里?输出到哪里?这个问题不难理解,输入输出是要站着服务器角度来思考的,下面用图来解释:    代码关键词: 1.在接收到响应头的代理

IIS 设置文件可下载

IIS遇到了文件不能下载的问题.为了让IIS能下载扩展名是INI的文件,我们需要如此操作:(括号内的是英文版本的名字) 打开"IIS管理器(InternetInformationServices(IIS)Manager)" 选择到你的站点.单击右键.选择"属性(Properties)" 单击"HTTP头(HTTPHeaders)"选项卡 单击"MIME类型(MIMETypes)" 单击"新建(NEW)" 在

大文件断点下载

(1)实现思路 在下载文件的时候不再是整块的从头开始下载,而是看当前文件已经下载到哪个地方,然后从该地方接着往后面下载.可以通过在请求对象中设置请求头实现. (2)解决方案(设置请求头) //2.创建请求对象 NSMutableURLRequest *request = [NSMutableURLRequest requestWithURL:url]; //2.1 设置下载文件的某一部分 // 只要设置HTTP请求头的Range属性, 就可以实现从指定位置开始下载 /* 表示头500个字节:Ra

大文件的下载

(1)实现思路 边接收数据边写文件以解决内存越来越大的问题 (2)核心代码 //当接收到服务器响应的时候调用,该方法只会调用一次 -(void)connection:(NSURLConnection *)connection didReceiveResponse:(NSURLResponse *)response { //0.获得当前要下载文件的总大小(通过响应头得到) NSHTTPURLResponse *res = (NSHTTPURLResponse *)response; self.to

简单的上传文件和下载文件

简单的上传文件和下载文件: request.setCharacterEncoding("utf-8"); / *设置编码格式 */ response.setContentType("application/msword");  /*使浏览器能区分数据的种类,这里是word文件类型*/ Part part = request.getPart("files"); /*取的需要上传的文件*/ String path = this.getServletC

Jmeter和LR上传文件和下载

Jmeter和LR上传文件和下载 背景: 在某个申请业务中,需要上传附件文件,然后才能提交该申请 遇到的问题: 1,  在使用Jmeter或者LR进行录制时,无法录制到上传文件的请求,只能通过Fiddler能查看到该请求 2,  因为录制不下来,只能手工构造,但网上相关的材料太少. 所以在这里整理备忘 Fiddler录制得到的请求的Header和Body如下面的两个截屏 body 截图如上,注意Header截图[Content-Type:multipart/form-data;boundary=

java文本、表格word转换生成PDF加密文件代码下载

原文:java文本.表格word转换生成PDF加密文件代码下载 代码下载地址:http://www.zuidaima.com/share/1550463239146496.htm 这个实现了PDF加密功能,和一些基本的问题. java文本.表格word转换生成PDF加密文件代码下载,布布扣,bubuko.com