公司要求ftp接口不能以明文方式传输,所以adc系统将增加ftps方式 但是在网找了很多方式都无法实现
用了
方法一

FtpWebRequest request = (FtpWebRequest)WebRequest.Create(FileUploadPath);
  request.Method = WebRequestMethods.Ftp.ListDirectory;
  request.Credentials = new NetworkCredential(UpLoadUser,UpLoadPWD);

request.EnableSsl = true;
  request.UsePassive = true;
  ServicePointManager.ServerCertificateValidationCallback = delegate(object sender, X509Certificate certificate, X509Chain chain, SslPolicyErrors sslPolicyErrors)  
  { return true; };

FtpWebResponse response = (FtpWebResponse)request.GetResponse();
  Stream responseStream = null;
  StreamReader readStream = null;
  try
  {
  responseStream = response.GetResponseStream();
  readStream = new StreamReader(responseStream, System.Text.Encoding.UTF8);
  if (readStream != null)
  Console.WriteLine(readStream.ReadToEnd());
  }
  finally
  {
  if (readStream != null)
  readStream.Close();
  if (response != null)
  response.Close();
  }

方法二
  public void Upload(string filename)
  {
    
  FileInfo fileInf = new FileInfo(filename);
  string uri = "ftp://" + ftpServerIP + "/" + fileInf.Name;
  FtpWebRequest reqFTP;

// 根据uri创建FtpWebRequest对象  
  reqFTP = (FtpWebRequest)FtpWebRequest.Create(new Uri("ftp://" + ftpServerIP + "/" + fileInf.Name));

// ftp用户名和密码  
  reqFTP.Credentials = new NetworkCredential(ftpUserID, ftpPassword);
  //SSL
  reqFTP.EnableSsl = true;
  // 默认为true,连接不会被关闭  
  // 在一个命令之后被执行  
  reqFTP.KeepAlive = false;
    
  // 指定执行什么命令  
  reqFTP.Method = WebRequestMethods.Ftp.UploadFile;

// 指定数据传输类型  
  reqFTP.UseBinary = true;
  //指定传输模式
  reqFTP.UsePassive =false;

// 上传文件时通知服务器文件的大小  
  reqFTP.ContentLength = fileInf.Length;

// 缓冲大小设置为2kb  
  int buffLength = 2048;

byte[] buff = new byte[buffLength];
  int contentLen;

// 打开一个文件流 (System.IO.FileStream) 去读上传的文件  
  FileStream fs = fileInf.OpenRead();
  try
  {
  // 把上传的文件写入流  
  Stream strm = reqFTP.GetRequestStream();

// 每次读文件流的2kb  
  contentLen = fs.Read(buff, 0, buffLength);

// 流内容没有结束  
  while (contentLen != 0)
  {
  // 把内容从file stream 写入 upload stream  
  strm.Write(buff, 0, contentLen);

contentLen = fs.Read(buff, 0, buffLength);
  }

// 关闭两个流  
  strm.Close();
  fs.Close();
  }
  catch (Exception ex)
  {
  // MessageBox.Show(ex.Message, "Upload Error");
  }
  }

都是报远程链接失败 另外提一下 我们的服务器是不需要校验证书的 端口号是990 一定要是被动模式才能登录
麻烦各位大虾 帮忙看看有什么改进的办法 或者有直接的案例 提供一下

FTPS加密上传的更多相关文章

  1. xml文件加密上传和sftp下载解密基本思路

    AES对称加密效率高,对大文件加密适合.RSA非对称加密效率低,更安全,对小文件加密适合. 整理 11:12 2016/8/4 加密:1.xml xml.md5摘要 2.(xml)aes加密 (xml ...

  2. 初试“七牛云”--零基础运用七牛云配合UEditor实现图片的上传和浏览(.NET篇)

    (注册和建立存储空间就不介绍了,网上一把一把的资料,自己试着点点也能明白) 作为一个成熟的菜鸟,如果遇到一个新问题,第一步当然是先百度一下... 看了N个关于七牛云的使用的帖子,表示还是蒙圈的,看懂了 ...

  3. iUploader 2.0 七牛云上传工具

    iUploader 软件介绍: iUploader主要功能将文件上传至七牛云,返回 Markdown 格式的链接到剪贴板 功能介绍: 图片本地压缩 图片右键上传 图片截取上传 图片复制上传 图片拖拽上 ...

  4. 一键自动发布ipa(更新svn,拷贝资源,压缩资源,加密图片资源,加密数据文件,加密lua脚本,编译代码,ipa签名,上传ftp)

    一键自动发布ipa(更新svn,拷贝资源,压缩资源,加密图片资源,加密数据文件,加密lua脚本,编译代码,ipa签名,上传ftp) 程序员的生活要一切自动化,更要幸福^_^. 转载请注明出处http: ...

  5. JS分段上传文件(File)并使用MD5.js加密文件段用来后台校验

    HTML <form method="POST" name="form1" action="/mupload/upload/" enc ...

  6. 关于php加密库加密数据上传数据库或解密出错的问题

    php加密拓展库随着php版本的更新,函数的使用方法有所改变,所以加密模式推荐使用ecb,其中加密算法19种,加密模式8种,通过这种方式加密后的数据上传数据库后提取出来进行解密会发现结果是乱码,我认为 ...

  7. Android获取通讯录并上传(包含通讯录加密)

    好久没更新文章了,近期在做通讯录上传,把它分享出来,送给需要的朋友. 写了一个通讯录工具类,直接放代码吧,关键位置通过注释来解释. 这个工具类包含通讯录获取,加密,然后上传操作.看不懂的可以留言 im ...

  8. 你真的了解字典(Dictionary)吗? C# Memory Cache 踩坑记录 .net 泛型 结构化CSS设计思维 WinForm POST上传与后台接收 高效实用的.NET开源项目 .net 笔试面试总结(3) .net 笔试面试总结(2) 依赖注入 C# RSA 加密 C#与Java AES 加密解密

    你真的了解字典(Dictionary)吗?   从一道亲身经历的面试题说起 半年前,我参加我现在所在公司的面试,面试官给了一道题,说有一个Y形的链表,知道起始节点,找出交叉节点.为了便于描述,我把上面 ...

  9. C&C控制服务的设计和侦测方法综述——DDoS攻击,上传从宿主机偷窃的到的信息,定时给感染机文件加密勒索等。

    这篇文章总结了一些我在安全工作里见到过的千奇百怪的C&C控制服务器的设计方法以及对应的侦测方法,在每个C&C控制服务先介绍黑帽部分即针对不同目的的C&C服务器设计方法,再介绍白 ...

随机推荐

  1. 第七篇 SQL Server代理作业活动监视器

    本篇文章是SQL Server代理系列的第七篇,详细内容请参考原文 在这一系列的上一篇,你创建并配置SQL Server代理作业.每个作业有一个或多个步骤,可能包含大量的工作流.在这篇文章中,将查看作 ...

  2. python_递归

    1.  递归示例 #coding:utf-8 #递归进行阶乘 def mm(num): if(num == 1): return 1 else: return mm(num-1) * num prin ...

  3. MySQL Replication的相关文件

    1.master.info文件 位于slave端的数据目录下,存储slave连接到master的相关信息,如,master主机地址.连接用户.密码.端口.已经获取的日志信息. 复制过程中修改.删除ma ...

  4. Android Push Notification实现信息推送使用

    本贴在http://www.cnblogs.com/hanyonglu/archive/2012/03/16/2399655.html下略为改动. Apndroid Push Notification ...

  5. npm 介绍

    安装NPM NPM的全称是Node Package Manager,如果你熟悉ruby的gem,Python的PyPL.setuptools,PHP的pear,那么你就知道NPM的作用是什么了.没 错 ...

  6. poj 1417(并查集+简单dp)

    True Liars Time Limit: 1000MS   Memory Limit: 10000K Total Submissions: 2087   Accepted: 640 Descrip ...

  7. 写了个pager, 可供参考

    /* Author: Calos Description: patv2 pager !import: this pager goes with the time, we just temporaril ...

  8. CSS禅意花园(设计一)

    设计 1.排版样式. 正文部分文字比例比菜单不分班的大,可区分着两个区域(说明正文比菜单重要).排版也是一种交流方式,运用文字的大小.间距.颜色调整样式,给浏览者丰富的信息. 2.图标 3.分割线 适 ...

  9. C++之路进阶——codevs1285(宠物收养所)

    1285 宠物收养所  时间限制: 1 s  空间限制: 128000 KB  题目等级 : 钻石 Diamond   题目描述 Description 最近,阿Q开了一间宠物收养所.收养所提供两种服 ...

  10. yii添加行的增删改查

    效果图: 控制器: <?phpnamespace backend\controllers;use Yii;use yii\web\Controller;use backend\models\Zh ...