使用SSL加密的FtpWebRequest举例

 

 

 

 

using System;
using System.IO;
using System.Net;
using System.Net.Security;
using System.Security.Cryptography.X509Certificates;

namespace Test
{
    
class Program
    {
        
static void Main(string[] args)
        {
            Uri serverUri 
= new Uri("ftp://xxx.xxx.xxx.xxx");
            FtpWebRequest request 
= (FtpWebRequest)WebRequest.Create(serverUri);            
            request.Credentials 
= new NetworkCredential("username""password""");
            request.Method 
= WebRequestMethods.Ftp.ListDirectoryDetails;
            
//下面4行代码用于支持显示SSL(explicit SSL),.NET2.0中的FtpWebRequest不支持
            
//隐式SSL(implicit SSL)。如果不用SSL,注释掉它们即可
            request.EnableSsl = true;
            ServicePointManager.ServerCertificateValidationCallback 
=
                
delegate(Object obj, X509Certificate certificate, X509Chain chain, SslPolicyErrors errors)
                { 
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();
            }
            Console.ReadLine();
        }
    }
}

 

posted @ 2008-08-28 12:04  h2appy  阅读(1112)  评论(0编辑  收藏  举报