System 2.0.0.0 4.0.0.0 System.Net.Security.AuthenticatedStream System.MonoTODO("Non-X509Certificate2 certificate is not supported")

SSL protocols help to provide confidentiality and integrity checking for messages transmitted using an . An SSL connection, such as that provided by , should be used when communicating sensitive information between a client and a server. Using an helps to prevent anyone from reading and tampering with information while it is in transit on the network.

An instance transmits data using a stream that you supply when creating the . When you supply this underlying stream, you have the option to specify whether closing the also closes the underlying stream. Typically, the class is used with the and classes. The method provides a suitable for use with the class.

After creating an , the server and optionally, the client must be authenticated. The server must provide an X509 certificate that establishes proof of its identity and can request that the client also do so. Authentication must be performed before transmitting information using an . Clients initiate authentication using the synchronous methods, which block until the authentication completes, or the asynchronous methods, which do not block waiting for the authentication to complete. Servers initiate authentication using the synchronous or asynchronous methods. Both client and server must initiate the authentication.

The authentication is handled by the Security Support Provider (SSPI) channel provider. The client is given an opportunity to control validation of the server's certificate by specifying a delegate when creating an . The server can also control validation by supplying a delegate. The method referenced by the delegate includes the remote party's certificate and any errors SSPI encountered while validating the certificate. Note that if the server specifies a delegate, the delegate's method is invoked regardless of whether the server requested client authentication. If the server did not request client authentication, the server's delegate method receives a null certificate and an empty array of certificate errors.

If the server requires client authentication, the client must specify one or more certificates for authentication. If the client has more than one certificate, the client can provide a delegate to select the correct certificate for the server. The client's certificates must be located in the current user's "My" certificate store. Client authentication via certificates is not supported for the (SSL version 2) protocol.

If the authentication fails, you receive a , and the is no longer useable. You should close this object and remove all references to it so that it can be collected by the garbage collector.

When the authentication process, also known as the SSL handshake, succeeds, the identity of the server (and optionally, the client) is established and the can be used by the client and server to exchange messages. Before sending or receiving information, the client and server should check the security services and levels provided by the to determine whether the protocol, algorithms, and strengths selected meet their requirements for integrity and confidentiality. If the current settings are not sufficient, the stream should be closed. You can check the security services provided by the using the and properties. The following table shows the elements that report the cryptographic settings used for authentication, encryption and data signing.

Element

Members

The security protocol used to authenticate the server and, optionally, the client.

The property and the associated enumeration.

The key exchange algorithm.

The property and the associated enumeration.

The message integrity algorithm.

The property and the associated enumeration.

The message confidentiality algorithm.

The property and the associated enumeration.

The strengths of the selected algorithms.

The , , and properties.

After a successful authentication, you can send data using the synchronous or asynchronous methods. You can receive data using the synchronous or asynchronous methods.

If you specified to the that the underlying stream should be left open, you are responsible for closing that stream when you are done using it.

If the application that creates the object runs with the credentials of a Normal user, the application will not be able to access certificates installed in the local machine store unless permission has been explicitly given to the user to do so.

assumes that a timeout along with any other when one is thrown from the inner stream will be treated as fatal by its caller. Reusing a instance after a timeout will return garbage. An application should the and throw an exception in these cases.

Provides a stream used for client-server communication that uses the Secure Socket Layer (SSL) security protocol to authenticate the server and optionally the client.

- Constructor
  2.0.0.0
  4.0.0.0

  If a value is not specified in the configuration file for encryptionpolicy, the defaults to for the instance that is constructed.

  The use of the Null cipher is required when the encryption policy is set to .

  Initializes a new instance of the class using the specified .

  A object used by the for sending and receiving data.
- Constructor
  2.0.0.0
  4.0.0.0

  When you specify true for the parameter, closing the has no effect on the stream; you must explicitly close when you no longer need it.

  If a value is not specified in the configuration file for encryptionpolicy, the defaults to for the instance that is constructed.

  The use of the Null cipher is required when the encryption policy is set to .

  Initializes a new instance of the class using the specified and stream closure behavior.

  A object used by the for sending and receiving data.
  A Boolean value that indicates the closure behavior of the object used by the for sending and receiving data. This parameter indicates if the inner stream is left open.
- Constructor
  2.0.0.0
  4.0.0.0
  System.MonoTODO("userCertificateValidationCallback is not passed X509Chain and SslPolicyErrors correctly")

  When you specify true for the parameter, closing the has no effect on the stream; you must explicitly close when you no longer need it.

  The delegate's argument contains any Windows error codes returned by the channel Security Support Provider Interface (SSPI). The return value of the method invoked by the delegate determines whether authentication succeeds.

  The security protocol and cryptographic algorithms are already selected when the delegate's method is invoked. You can use the method to determine whether the selected cryptographic algorithms and strengths are sufficient for your application. If not, the method should return false to prevent the from being created.

  If a value is not specified in the configuration file for encryptionpolicy, the defaults to for the instance that is constructed.

  The use of the Null cipher is required when the encryption policy is set to .

  The Framework caches SSL sessions as they are created and attempts to reuse a cached session for a new request, if possible. When attempting to reuse an SSL session, the Framework uses the first element of (if there is one), or tries to reuse an anonymous sessions if is empty.

  Client certificates are not supported in the SSL version 2 protocol.

  Initializes a new instance of the class using the specified , stream closure behavior and certificate validation delegate.

  A object used by the for sending and receiving data.
  A Boolean value that indicates the closure behavior of the object used by the for sending and receiving data. This parameter indicates if the inner stream is left open.
  A delegate responsible for validating the certificate supplied by the remote party.
- Constructor
  2.0.0.0
  4.0.0.0
  System.MonoTODO("userCertificateValidationCallback is not passed X509Chain and SslPolicyErrors correctly")

  When you specify true for the parameter, closing the has no effect on the stream; you must explicitly close when you no longer need it.

  The delegate's argument contains any Windows error codes returned by the channel Security Support Provider Interface (SSPI). The return value of the method invoked by the delegate determines whether authentication succeeds.

  The security protocol and cryptographic algorithms are already selected when the delegate's method is invoked. You can use the method to determine whether the selected cryptographic algorithms and strengths are sufficient for your application. If not, the method should return false to prevent the from being created.

  The delegate is useful when your application has multiple certificates and must dynamically choose a certificate. Certificates in the "MY" store are passed to the method invoked by the delegate.

  If a value is not specified in the configuration file for encryptionpolicy, the defaults to for the instance that is constructed.

  The use of the Null cipher is required when the encryption policy is set to .

  The Framework caches SSL sessions as they are created and attempts to reuse a cached session for a new request, if possible. When attempting to reuse an SSL session, the Framework uses the first element of P:System.Net.HttpWebRequest.ClientCertificates (if there is one), or tries to reuse an anonymous sessions if P:System.Net.HttpWebRequest.ClientCertificates is empty.

  Initializes a new instance of the class using the specified , stream closure behavior, certificate validation delegate and certificate selection delegate.

  A object used by the for sending and receiving data.
  A Boolean value that indicates the closure behavior of the object used by the for sending and receiving data. This parameter indicates if the inner stream is left open.
  A delegate responsible for validating the certificate supplied by the remote party.
  A delegate responsible for selecting the certificate used for authentication.
- Method
  2.0.0.0
  4.0.0.0
  System.Void ``

  This method authenticates using . No client certificates are used in the authentication. The certificate revocation list is not checked during authentication. The value specified for must match the name on the server's certificate.

  When authentication succeeds, you must check the and properties to determine what security services are used by the . Check the property to determine whether mutual authentication occurred.

  If the authentication fails, you receive a , and this is no longer useable. You should close this object and remove all references to it so that it can be collected by the garbage collector.

  Called by clients to authenticate the server and optionally the client in a client-server connection.

  The name of the server that shares this .
- Method
  2.0.0.0
  4.0.0.0
  System.Void `` `` `` ``

  When authentication succeeds, you must check the and properties to determine what security services are used by the . Check the property to determine whether mutual authentication occurred.

  If the authentication fails, you receive a , and this is no longer useable. You should close this object and remove all references to it so that it can be collected by the garbage collector.

  Client certificates are not supported in the SSL version 2 protocol.

  Called by clients to authenticate the server and optionally the client in a client-server connection. The authentication process uses the specified certificate collection and SSL protocol.

  The name of the server that will share this . The that contains client certificates. The value that represents the protocol used for authentication. A value that specifies whether the certificate revocation list is checked during authentication.
- Method
  4.0.0.0
  System.Threading.Tasks.Task ``

  This method authenticates using . No client certificates are used in the authentication. The certificate revocation list is not checked during authentication. The value specified for must match the name on the server's certificate.

  When authentication succeeds, you must check the and properties to determine what security services are used by the . Check the property to determine whether mutual authentication occurred.

  If the authentication fails, you receive a , and this is no longer useable. You should close this object and remove all references to it so that it can be collected by the garbage collector.

  Called by clients to authenticate the server and optionally the client in a client-server connection as an asynchronous operation.

  Returns

  The task object representing the asynchronous operation.

  The name of the server that shares this .
- Method
  4.0.0.0
  System.Threading.Tasks.Task `` `` `` ``

  When authentication succeeds, you must check the and properties to determine what security services are used by the . Check the property to determine whether mutual authentication occurred.

  If the authentication fails, you receive a , and this is no longer useable. You should close this object and remove all references to it so that it can be collected by the garbage collector.

  Client certificates are not supported in the SSL version 2 protocol.

  Called by clients to authenticate the server and optionally the client in a client-server connection as an asynchronous operation. The authentication process uses the specified certificate collection and SSL protocol.

  Returns

  The task object representing the asynchronous operation.

  The name of the server that will share this . The that contains client certificates. The value that represents the protocol used for authentication. A value that specifies whether the certificate revocation list is checked during authentication.
- Method
  2.0.0.0
  4.0.0.0
  System.Void ``

  This method authenticates using . The certificate revocation list is not checked during authentication. The client is not required to provide a certificate for authentication.

  This method blocks until the operation completes. To prevent blocking until the operation completes, use one of the method overloads.

  If the authentication fails, you receive a , and this is no longer useable. You should close this object and remove all references to it so that it can be collected by the garbage collector.

  Called by servers to authenticate the server and optionally the client in a client-server connection using the specified certificate.

  The certificate used to authenticate the server.
- Method
  2.0.0.0
  4.0.0.0
  System.Void `` `` `` ``

  This method blocks until the operation completes. To prevent blocking until the operation completes, use one of the method overloads.

  If the authentication fails, you receive a , and this is no longer useable. You should close this object and remove all references to it so that it can be collected by the garbage collector.

  Called by servers to authenticate the server and optionally the client in a client-server connection using the specified certificates, requirements and security protocol.

  The X509Certificate used to authenticate the server. A value that specifies whether the client must supply a certificate for authentication. The value that represents the protocol used for authentication. A value that specifies whether the certificate revocation list is checked during authentication.
- Method
  4.0.0.0
  System.Threading.Tasks.Task ``

  This method authenticates using . The certificate revocation list is not checked during authentication. The client is not required to provide a certificate for authentication.

  If the authentication fails, you receive a , and this is no longer useable. You should close this object and remove all references to it so that it can be collected by the garbage collector.

  Called by servers to authenticate the server and optionally the client in a client-server connection using the specified certificate as an asynchronous operation.

  Returns

  The task object representing the asynchronous operation.

  The certificate used to authenticate the server.
- Method
  4.0.0.0
  System.Threading.Tasks.Task `` `` `` ``

  If the authentication fails, you receive a , and this is no longer useable. You should close this object and remove all references to it so that it can be collected by the garbage collector.

  Called by servers to authenticate the server and optionally the client in a client-server connection using the specified certificates, requirements and security protocol as an asynchronous operation.

  Returns

  The task object representing the asynchronous operation.

  The X509Certificate used to authenticate the server. A value that specifies whether the client must supply a certificate for authentication. The value that represents the protocol used for authentication. A value that specifies whether the certificate revocation list is checked during authentication.
- Method
  2.0.0.0
  4.0.0.0
  System.IAsyncResult `` `` ``

  This method authenticates using . No client certificates are used in the authentication. The certificate revocation list is not checked during authentication.

  The value specified for must match the name on the server's certificate.

  The asynchronous authentication operation must be completed by calling the method. Typically, the method is invoked by the delegate.

  This method does not block while the operation completes. To block until the operation completes, use one of the method overloads.

  For detailed information about using the asynchronous programming model, see Asynchronous Programming Overview

  If you receive a , this is no longer useable. You should close this object and remove all references to it so that it can be collected by the garbage collector.

  Called by clients to begin an asynchronous operation to authenticate the server and optionally the client.

  An object that indicates the status of the asynchronous operation.

  The name of the server that shares this . An delegate that references the method to invoke when the authentication is complete. A user-defined object that contains information about the operation. This object is passed to the delegate when the operation completes.
- Method
  2.0.0.0
  4.0.0.0
  System.IAsyncResult `` `` `` `` `` ``

  The value specified for must match the name on the server's certificate.

  The asynchronous authentication operation must be completed by calling the method. Typically, the method is invoked by the delegate.

  This method does not block while the operation completes. To block until the operation completes, use one of the method overloads.

  For detailed information about using the asynchronous programming model, see Asynchronous Programming Overview

  If you receive a , this is no longer useable. You should close this object and remove all references to it so that it can be collected by the garbage collector.

  Client certificates are not supported in the SSL version 2 protocol.

  Called by clients to begin an asynchronous operation to authenticate the server and optionally the client using the specified certificates and security protocol.

  An object that indicates the status of the asynchronous operation.

  The name of the server that shares this . The containing client certificates. The value that represents the protocol used for authentication. A value that specifies whether the certificate revocation list is checked during authentication. An delegate that references the method to invoke when the authentication is complete. A user-defined object that contains information about the operation. This object is passed to the delegate when the operation completes.
- Method
  2.0.0.0
  4.0.0.0
  System.IAsyncResult `` `` ``

  This method authenticates using . The certificate revocation list is not checked during authentication. The client is not required to provide a certificate for authentication.

  The asynchronous authentication operation must be completed by calling the method. Typically, the method is invoked by the delegate.

  This method does not block while the operation completes. To block until the operation completes, use one of the method overloads.

  For detailed information about using the asynchronous programming model, see Asynchronous Programming Overview

  If you receive a , this is no longer useable. You should close this object and remove all references to it so that it can be collected by the garbage collector.

  Called by servers to begin an asynchronous operation to authenticate the client and optionally the server in a client-server connection.

  An object indicating the status of the asynchronous operation.

  The X509Certificate used to authenticate the server. An delegate that references the method to invoke when the authentication is complete. A user-defined object that contains information about the operation. This object is passed to the delegate when the operation completes.
- Method
  2.0.0.0
  4.0.0.0
  System.IAsyncResult `` `` `` `` `` ``

  The asynchronous authentication operation must be completed by calling the method. Typically, the method is invoked by the delegate.

  This method does not block while the operation completes. To block until the operation completes, use one of the method overloads.

  For detailed information about using the asynchronous programming model, see Asynchronous Programming Overview

  If you receive a , this is no longer useable. You should close this object and remove all references to it so that it can be collected by the garbage collector.

  Called by servers to begin an asynchronous operation to authenticate the server and optionally the client using the specified certificates, requirements and security protocol.

  An object that indicates the status of the asynchronous operation.

  The X509Certificate used to authenticate the server. A value that specifies whether the client must supply a certificate for authentication. The value that represents the protocol used for authentication. A value that specifies whether the certificate revocation list is checked during authentication. An delegate that references the method to invoke when the authentication is complete. A user-defined object that contains information about the operation. This object is passed to the delegate when the operation completes.
- Method
  2.0.0.0
  4.0.0.0
  System.IAsyncResult `` `` `` `` ``

  If encryption and or signing are enabled, the read operation reads the data from the underlying stream, checks the integrity of the data, and/or decrypts it. The asynchronous read operation must be completed by calling the method. Typically, the method is invoked by the delegate.

  This method does not block while the operation completes. To block until the operation completes, use the method.

  For detailed information about using the asynchronous programming model, see Asynchronous Programming Overview

  The class does not support multiple simultaneous read operations.

  You cannot call this method until you have successfully authenticated. To authenticate call one of the , or , , methods.

  Begins an asynchronous read operation that reads data from the stream and stores it in the specified array.

  An object that indicates the status of the asynchronous operation.

  A array that receives the bytes read from the stream. The zero-based location in at which to begin storing the data read from this stream. The maximum number of bytes to read from the stream. An delegate that references the method to invoke when the read operation is complete. A user-defined object that contains information about the read operation. This object is passed to the delegate when the operation completes.
- Method
  2.0.0.0
  4.0.0.0
  System.IAsyncResult `` `` `` `` `` To be added.

  Begins an asynchronous write operation that writes s from the specified buffer to the stream.

  An object indicating the status of the asynchronous operation.

  A array that supplies the bytes to be written to the stream. The zero-based location in at which to begin reading bytes to be written to the stream. An value that specifies the number of bytes to read from . An delegate that references the method to invoke when the write operation is complete. A user-defined object that contains information about the write operation. This object is passed to the delegate when the operation completes.
- Property
  2.0.0.0
  4.0.0.0
  System.Boolean To be added.

  If successful authentication has occurred, this property returns the value returned by invoking on the underlying stream.

  The underlying stream is specified when you create an instance of the class.

  Gets a value that indicates whether the underlying stream is readable.

- Property
  2.0.0.0
  4.0.0.0
  System.Boolean To be added.

  Do not attempt to set the position of the object or its underlying stream.

  The underlying stream is specified when you create an instance of the class.

  Gets a value that indicates whether the underlying stream is seekable.

- Property
  2.0.0.0
  4.0.0.0
  System.Boolean To be added.

  This property returns the value returned by invoking on the underlying stream.

  The underlying stream is specified when you create an instance of the class.

  Gets a value that indicates whether the underlying stream supports time-outs.

- Property
  2.0.0.0
  4.0.0.0
  System.Boolean To be added.

  If successful authentication has occurred, this property returns the value returned by invoking on the underlying stream.

  The underlying stream is specified when you create an instance of the class.

  Gets a value that indicates whether the underlying stream is writable.

- Property
  2.0.0.0
  4.0.0.0
  System.Boolean To be added.

  The certificate revocation list contains certificates that have been revoked by the issuer. Checking the list negatively impacts performance but improves application security.

  Gets a value that indicates whether the certificate revocation list is checked during the certificate validation process.

- Property
  2.0.0.0
  4.0.0.0
  System.Security.Authentication.CipherAlgorithmType To be added.

  A value of is required for the property when the enumeration value is used to construct a instance.

  winxpsvr and winxp do not support the value. So even if the value is used to construct the instance, the property will be . The value is only returned on Windows Vista and later.

  Gets a value that identifies the bulk encryption algorithm used by this .

- Property
  2.0.0.0
  4.0.0.0
  System.Int32 To be added.

  The value of this property is zero until the authentication occurs.

  This property returns one of the following values:

  0

  40

  56

  80

  128

  168

  192

  256

  Gets a value that identifies the strength of the cipher algorithm used by this .

- Method
  2.0.0.0
  4.0.0.0
  System.Void ``

  This method is called by the public Dispose() method and the method. Dispose() invokes the protected Dispose(Boolean) method with the parameter set to true. invokes Dispose with set to false.

  When the parameter is true, this method releases all resources held by any managed objects that this references. This method invokes the Dispose() method of each referenced object.

  Releases the unmanaged resources used by the and optionally releases the managed resources.

  true to release both managed and unmanaged resources; false to release only unmanaged resources.
- Method
  2.0.0.0
  4.0.0.0
  System.Void ``

  If the operation has not completed, this method blocks until it does. When the authentication succeeds, you must check the and properties to determine what security services are used by the . Check the property to determine whether mutual authentication occurred.

  If the authentication fails, you receive a , and this is no longer useable. You should close this object and remove all references to it so that it can be collected by the garbage collector.

  To perform this operation synchronously, use one of the methods.

  Ends a pending asynchronous server authentication operation started with a previous call to .

  An instance returned by a call to .
- Method
  2.0.0.0
  4.0.0.0
  System.Void ``

  If the operation has not completed, this method blocks until it does. When the authentication succeeds, you must check the and properties to determine what security services are used by the . Check the property to determine whether mutual authentication occurred.

  If the authentication fails, you receive a , and this is no longer useable. You should close this object and remove all references to it so that it can be collected by the garbage collector.

  To perform this operation synchronously, use one of the method.

  Ends a pending asynchronous client authentication operation started with a previous call to .

  An instance returned by a call to .
- Method
  2.0.0.0
  4.0.0.0
  System.Int32 ``

  If the operation has not completed, this method blocks until it does.

  To perform this operation synchronously, use the method.

  You cannot call this method until you have successfully authenticated. To authenticate call one of the , or , , methods.

  Ends an asynchronous read operation started with a previous call to .

  A value that specifies the number of bytes read from the underlying stream.

  An instance returned by a call to
- Method
  2.0.0.0
  4.0.0.0
  System.Void ``

  If the operation has not completed, this method blocks until it does.

  An application cannot call this method until you have successfully authenticated. To authenticate, call one of the , or , , methods.

  To perform this operation synchronously, use the method.

  Ends an asynchronous write operation started with a previous call to .

  An instance returned by a call to
- Method
  2.0.0.0
  4.0.0.0
  System.Void

  This method invokes on the underlying stream.

  Causes any buffered data to be written to the underlying device.

- Property
  2.0.0.0
  4.0.0.0
  System.Security.Authentication.HashAlgorithmType To be added.

  Message authentication algorithms generate message hashes and signatures used to detect tampering and forgery.

  Gets the algorithm used for generating message authentication codes (MACs).

- Property
  2.0.0.0
  4.0.0.0
  System.Int32 To be added.

  The value of this property is zero until the authentication occurs.

  Gets a value that identifies the strength of the hash algorithm used by this instance.

- Property
  2.0.0.0
  4.0.0.0
  System.Boolean To be added.

  Clients authenticate by calling the or methods. Servers authenticate by calling the or methods.

  Gets a value that indicates whether authentication was successful.

- Property
  2.0.0.0
  4.0.0.0
  System.Boolean To be added.

  Encryption helps to protect the privacy of the data, namely it helps to ensure that while data is in transit, it cannot be deciphered by third parties.

  Gets a value that indicates whether this uses data encryption.

- Property
  2.0.0.0
  4.0.0.0
  System.Boolean To be added.

  Mutual authentication is specified by the server when the server wants the client to provide a certificate for authentication.

  Gets a value that indicates whether both server and client have been authenticated.

- Property
  2.0.0.0
  4.0.0.0
  System.Boolean To be added.

  If authentication failed or did not occur, this property returns false.

  To authenticate as the server, call the or methods.

  Gets a value that indicates whether the local side of the connection used by this was authenticated as the server.

- Property
  2.0.0.0
  4.0.0.0
  System.Boolean To be added.

  Data signing helps to protect the integrity of the data, namely it helps the recipient determine whether the data has been tampered with while in transit.

  Gets a value that indicates whether the data sent using this stream is signed.

- Property
  2.0.0.0
  4.0.0.0
  System.Security.Authentication.ExchangeAlgorithmType To be added.

  The value of this property is until the authentication occurs.

  The key exchange algorithm protects information used to generate shared keys.

  Gets the key exchange algorithm used by this .

- Property
  2.0.0.0
  4.0.0.0
  System.Int32 To be added.

  The value of this property is zero until the authentication occurs.

  In common scenarios, the value of this property is one of the following:

  512

  768

  1024

  2048

  Gets a value that identifies the strength of the key exchange algorithm used by this instance.

- Property
  2.0.0.0
  4.0.0.0
  System.Int64 To be added.

  This property returns the value returned by invoking on the underlying stream. If the underlying stream is not seekable, this method typically throws an exception. The run-time type of the underlying stream determines the run-time type of the exception that is thrown.

  Gets the length of the underlying stream.

- Property
  2.0.0.0
  4.0.0.0
  System.Security.Cryptography.X509Certificates.X509Certificate To be added. To be added.

  Gets the certificate used to authenticate the local endpoint.

- Property
  2.0.0.0
  4.0.0.0
  System.Int64 To be added.

  This property returns the value returned by invoking on the underlying stream. If the underlying stream is not seekable, this method typically throws an exception. The run-time type of the underlying stream determines the run-time type of the exception that is thrown.

  Gets or sets the current position in the underlying stream.

- Method
  2.0.0.0
  4.0.0.0
  System.Int32 `` `` ``

  The method reads a maximum of bytes from the stream and stores them in beginning at . You cannot perform multiple simultaneous read operations.

  You cannot call this method until you have successfully authenticated. To authenticate call one of the , or , , methods.

  To perform this operation asynchronously, use the method.

  Reads data from this stream and stores it in the specified array.

  A value that specifies the number of bytes read. When there is no more data to be read, returns 0.

  A array that receives the bytes read from this stream. A that contains the zero-based location in at which to begin storing the data read from this stream. A that contains the maximum number of bytes to read from this stream.
- Property
  2.0.0.0
  4.0.0.0
  System.Int32 To be added.

  This property returns the value returned by invoking on the underlying stream. When you set this property, the value on the underlying stream is set to the specified value.

  If the underlying stream is a , is in milliseconds and is set to by default so that read operations do not timeout.

  Gets or sets the amount of time a read operation blocks waiting for data.

- Property
  2.0.0.0
  4.0.0.0
  System.Security.Cryptography.X509Certificates.X509Certificate To be added. To be added.

  Gets the certificate used to authenticate the remote endpoint.

- Method
  2.0.0.0
  4.0.0.0
  System.Int64 `` ``

  Do not call this method. It is inherited, but is not supported by the class.

  Throws a .

  Always throws a .

  This value is ignored. This value is ignored.
- Method
  2.0.0.0
  4.0.0.0
  System.Void ``

  This method invokes on the underlying stream specified when this was created.

  Sets the length of the underlying stream.

  An value that specifies the length of the stream.
- Property
  2.0.0.0
  4.0.0.0
  System.Security.Authentication.SslProtocols To be added.

  The supported security protocols are specified when the is created. If no security protocol was passed to the constructor, the instance is created using . The actual protocol used for authentication is selected based on the protocols supported by the client and server.

  Gets a value that indicates the security protocol used to authenticate this connection.

- Method
  2.0.0.0
  4.0.0.0
  System.Void ``

  This method blocks while the operation completes. To prevent blocking while the operation completes, use the method.

  You cannot call this method until you have successfully authenticated. To authenticate call one of the , or , , methods.

  The class does not support multiple simultaneous write operations.

  Writes the specified data to this stream.

  A array that supplies the bytes written to the stream.
- Method
  2.0.0.0
  4.0.0.0
  System.Void `` `` ``

  This method blocks while the operation completes. To prevent blocking while the operation completes the operation completes, use the method.

  You cannot call this method until you have successfully authenticated. To authenticate call one of the , or , , methods.

  The class does not support multiple simultaneous write operations.

  Write the specified number of s to the underlying stream using the specified buffer and offset.

  A array that supplies the bytes written to the stream. A that contains the zero-based location in at which to begin reading bytes to be written to the stream. A that contains the number of bytes to read from .
- Property
  2.0.0.0
  4.0.0.0
  System.Int32 To be added.

  This property returns the value returned by invoking on the underlying stream. For set operations, the specified value sets the value on the underlying stream.

  If the underlying stream is a , is in milliseconds and is set to by default so that write operations do not timeout.

  Gets or sets the amount of time a write operation blocks waiting for data.