/// <summary> /// Creates a new data stream object /// </summary> /// <param name="conn">The control connection to be used for carrying out this operation</param> public FtpDataStream(FtpClient conn) { if (conn == null) throw new ArgumentException("The control connection cannot be null."); ControlConnection = conn; // always accept certficate no matter what because if code execution ever // gets here it means the certificate on the control connection object being // cloned was already accepted. ValidateCertificate += new FtpSocketStreamSslValidation(delegate(FtpSocketStream obj, FtpSslValidationEventArgs e) { e.Accept = true; }); m_position = 0; }
/// <summary> /// Creates a new data stream object /// </summary> /// <param name="conn">The control connection to be used for carrying out this operation</param> public FtpDataStream(FtpClient conn) : base(conn.SslProtocols) { if (conn == null) { throw new ArgumentException("The control connection cannot be null."); } ControlConnection = conn; // always accept certificate no matter what because if code execution ever // gets here it means the certificate on the control connection object being // cloned was already accepted. ValidateCertificate += new FtpSocketStreamSslValidation(delegate(FtpSocketStream obj, FtpSslValidationEventArgs e) { e.Accept = true; }); m_position = 0; }
protected bool OnValidateCertificate(X509Certificate certificate, X509Chain chain, SslPolicyErrors errors) { FtpSocketStreamSslValidation sslvalidate = this.m_sslvalidate; if (sslvalidate != null) { FtpSslValidationEventArgs e = new FtpSslValidationEventArgs { Certificate = certificate, Chain = chain, PolicyErrors = errors, Accept = errors == SslPolicyErrors.None }; sslvalidate(this, e); return(e.Accept); } return(errors == SslPolicyErrors.None); }
/// <summary> /// Fires the SSL certificate validation event /// </summary> /// <param name="certificate">Certificate being validated</param> /// <param name="chain">Certificate chain</param> /// <param name="errors">Policy errors if any</param> /// <returns>True if it was accepted, false otherwise</returns> protected bool OnValidateCertificate(X509Certificate certificate, X509Chain chain, SslPolicyErrors errors) { FtpSocketStreamSslValidation evt = m_sslvalidate; if (evt != null) { FtpSslValidationEventArgs e = new FtpSslValidationEventArgs() { Certificate = certificate, Chain = chain, PolicyErrors = errors }; evt(this, e); return(e.Accept); } // if the event was not handled then only accept // the certificate if there were no validation errors return(errors == SslPolicyErrors.None); }