protected void Page_Load(object sender, EventArgs e)
{//下面的方法调用时最好做成异步线程,以免在文件过大时让用户主线程等待过久//如果asp.net模拟域账号访问客户端共享文件夹,报对路径"\\xxx\folder"的访问被拒绝//需在web.config文件system.web节配置<identity impersonate="true" userName="域\域账号" password="密码" />IntPtr ptr = default(IntPtr);if (WinLogonHelper.LogonUser("域账号", "域", "密码", 9, 0, ref ptr) != 0){using (WindowsIdentity wi = new WindowsIdentity(ptr)){using (WindowsImpersonationContext wic = wi.Impersonate()){if (!Directory.Exists(@"\\\\path\\folder")){//客户端文件夹对当前域账号开放共享,此处域账号可以根据所开放的权限对文件夹进行访问,例如读取文件夹中的文件、将文件copy到其他地方//......(共享文件夹的方式可以传输2G以上的多个文件)//将文件从客户端复制到服务端后,可以对新生成的文件目录设置共享访问权限,例如设置只读权限SetFolderACL("文件保存物理路径或网络地址", "域\\(一个反斜杠)域账号", FileSystemRights.Read, AccessControlType.Allow);}}}}
}public static class WinLogonHelper
{[DllImport("advapi32.DLL", SetLastError = true)]public static extern int LogonUser(string lpszUsername, string lpszDomain, string lpszPassword, int dwLogonType, int dwLogonProvider, ref IntPtr phToken);
}public static bool SetFolderACL(String folderPath, String userName, FileSystemRights rights, AccessControlType allowOrDeny)
{bool modified;DirectoryInfo folder = new DirectoryInfo(folderPath);DirectorySecurity fs1 = folder.GetAccessControl(AccessControlSections.All);InheritanceFlags inherits = InheritanceFlags.ContainerInherit | InheritanceFlags.ObjectInherit;FileSystemAccessRule accRule = new FileSystemAccessRule(userName, rights, inherits, PropagationFlags.None, allowOrDeny);fs1.ModifyAccessRule(AccessControlModification.Add, accRule, out modified);folder.SetAccessControl(fs1);DirectorySecurity fs2 = Directory.GetAccessControl(folderPath);fs2.SetAccessRuleProtection(false, true);Directory.SetAccessControl(folderPath, fs2);return modified;
}

如果采用用户在浏览器网页端提交文件表单方式上传,那么文件传输大小会受到三个方面的限制:浏览器所在机器内存大小、Web服务器允许传输的最大文件大小、程序本身接收文件的对象所能承载的文件大小。IIS只允许传输大小在2G以内的文件,Asp.Net在接收文件的对象中使用的是int类型的属性来标识文件所占字节数,因此文件大小也不能大于2G。而上面拷贝文件的过程使用的是FileInfo类型对象的CopyTo()方法,FileInfo类型对象使用long类型的属性来标识文件所占字节数,long类型的最大值可以标识几百万G的文件,因而对于单个文件来说传输大小几乎没有限制。

转载于:https://www.cnblogs.com/Arlar/p/6889823.html

C#以文件夹共享方式实现2G以上大文件传输相关推荐

  1. phpstorm如何同时打开两个文件夹_2分钟学会文件夹共享,化身办公室电脑大神

    点击上方蓝色字体,关注我们 身在职场或学校的你,还在用微信或QQ给办公室的小伙伴传文件吗? 那你可真就out了,总结一下,微信或QQ传文件存在以下3个缺点. 1.传输文件大小存在限制 微信不能发送10 ...

  2. linux如何找大文件夹,Linux系统中如何查找大文件或目录文件夹的方法

    Linux系统中如何查找大文件或文件夹的方法 在Windows系统中,我们可以使用TreeSize工具查找一些大文件或文件夹,非常的方便高效,在Linux系统中,如何去搜索一些比较大的文件呢?下面我整 ...

  3. 如何将服务器文件分享在局域网,局域网文件分发之windows7简单文件夹共享-局域网共享文件...

    本文知识点:文件夹共享.windows7.本地安全策略 windows的资源共享(文件夹.打印机等),可谓简单,但也复杂.简单呢,因为只有几个简单操作.复杂呢,因为涉及的概念复杂:网络安全.windo ...

  4. Windows系统上如何在局域网中创建共享文件夹及取消文件夹共享

    创建文件夹共享 保证两台互相访问的电脑在同一局域网的同一网段内 选择网络 -> 右键属性 -> 更改高级共享设置 选择公共 -> 选择以下选项:启用网络发现 -> 启用文件和打 ...

  5. ubuntu共享文件夹文件看不到_实验08:轻松搭建文件夹共享

    一.[实验目的] 1.实现简单的文件夹共享 2. 实现启用密码保护访问文件夹共享: 3.简单实现FTP文件共享的配置: 二.[实验器材] 两台物理机安装windows7系统环境: 三.[实验步骤] 任 ...

  6. opencore0.6.4_iOS 13.4/iPadOS 13.4正式版发布:iCloud支持文件夹共享

    苹果今天发布了iOS 13.4/iPadOS 13.4正式版,前往"设置>通用>软件更新"中即可检测升级.与此同时苹果还发布了适用于旧版iPhone的iOS 12.4. ...

  7. VMware与宿主机文件夹共享、虚拟机磁盘映射

    文章目录 一.要解决的问题 二.虚拟机磁盘映射 三.VMware与宿主机文件夹共享 一.要解决的问题 在VMware的win7虚拟机上使用phpstudy搭建网站服务器(使用wordpress模板), ...

  8. mac文件共享连不上服务器,mac服务器文件夹共享权限设置

    mac服务器文件夹共享权限设置 内容精选 换一换 该任务指导用户使用Loader将数据从SFTP服务器导入到Hive.创建或获取该任务中创建Loader作业的业务用户和密码.确保用户已授权访问作业中指 ...

  9. outlook删除服务器文件夹,如何还原已删除的Outlook文件夹[最佳方式]

    Outlook 是世界上最流行的电子邮件服务之一. 组织更有可能使用Outlook和Microsoft Exchange Online. Outlook的文件夹设计使电子邮件管理更容易. 用户可以创建 ...

最新文章

  1. 国家电网公司“SG186”工程总部企业门户开发实施
  2. python爬取内容乱码_【提问】PYTHON 爬取下来的中文数据显示乱码
  3. 15. 3Sum_左右开工,遍历找出符合目标的数字
  4. Web service 超过了最大请求长度错误解决
  5. 增加 jQueryValidate的手机号验证功能
  6. 解决ffmpeg拉流转发频繁丢包问题max delay reached. need to consume packet
  7. 【转】如何判断一个文本文件内容的编码格式 UTF-8 ? ANSI(GBK)
  8. 解决django3.x manage命令makemigrations无法创建数据表
  9. Python使用颜色块覆盖视频中指定区域的内容
  10. (转)那些年,被自己的技术者思维虐过的项目经理们
  11. CentOS7.2部署KVM虚拟机
  12. 20190818 On Java8 第八章 复用
  13. Shiro:初识Shiro及简单尝试
  14. 干货合辑!Ms08067安全实验室2020年度盘点
  15. 安卓手机屏幕投射电脑能同步声音
  16. JUCE学习笔记05-音频输出基础(白噪)
  17. 基于Java Swing五子棋小游戏设计和实现
  18. pixel cra_cra到pwa
  19. 泛函分析笔记7:弱收敛与弱星收敛
  20. Swift中的下标(subscript)

热门文章

  1. 理解 PHP output buffer
  2. leetcode[94]Binary Tree Inorder Traversal
  3. acdream 1042: Classification of the species 抽象无根树并查集
  4. offsetParent
  5. VSTO项目的MSB3482错误
  6. 【操作系统】—线程概念和多线程模型
  7. 纸质书,电子书,你会选择通过哪一种途径学习?
  8. 女方家长和男方家长第一次见面是怎么样的?
  9. 人的烦恼大部分来自于没钱
  10. 白岩松曾说过这样一段话