NegotiateStream.Read(Byte[], Int32, Int32) Metodo
Definizione
Importante
Alcune informazioni sono relative alla release non definitiva del prodotto, che potrebbe subire modifiche significative prima della release definitiva. Microsoft non riconosce alcuna garanzia, espressa o implicita, in merito alle informazioni qui fornite.
Legge i dati da questo flusso e li archivia nella matrice specificata.
public:
override int Read(cli::array <System::Byte> ^ buffer, int offset, int count);
public override int Read(byte[] buffer, int offset, int count);
override this.Read : byte[] * int * int -> int
Public Overrides Function Read (buffer As Byte(), offset As Integer, count As Integer) As Integer
Parametri
- offset
- Int32
Oggetto Int32 contenente la posizione in base zero in in buffer cui iniziare a archiviare i dati letti da questo flusso.
Valori restituiti
Valore Int32 che specifica il numero di byte letti dal flusso sottostante. Quando non sono presenti altri dati da leggere, restituisce 0.
Eccezioni
Operazione di lettura non riuscita.
L'autenticazione non è stata eseguita.
Un'operazione Read(Byte[], Int32, Int32) è già in corso.
Esempio
Nell'esempio di codice seguente viene illustrata la lettura da un oggetto NegotiateStream.
public static void AuthenticateClient(TcpClient clientRequest)
{
NetworkStream stream = clientRequest.GetStream();
// Create the NegotiateStream.
NegotiateStream authStream = new NegotiateStream(stream, false);
// Perform the server side of the authentication.
authStream.AuthenticateAsServer();
// Display properties of the authenticated client.
IIdentity id = authStream.RemoteIdentity;
Console.WriteLine("{0} was authenticated using {1}.",
id.Name,
id.AuthenticationType
);
// Read a message from the client.
byte [] buffer = new byte[2048];
int charLength = authStream.Read(buffer, 0, buffer.Length);
string messageData = new String(Encoding.UTF8.GetChars(buffer, 0, buffer.Length));
Console.WriteLine("READ {0}", messageData);
// Finished with the current client.
authStream.Close();
// Close the client connection.
clientRequest.Close();
}
Commenti
Il metodo legge un massimo di count byte dal flusso corrente e li archivia a buffer partire da offset.
Non è possibile chiamare questo metodo fino a quando non è stata eseguita correttamente l'autenticazione. Per eseguire l'autenticazione, chiamare uno dei AuthenticateAsClientmetodi , AuthenticateAsClientAsyncBeginAuthenticateAsClient, AuthenticateAsServer, AuthenticateAsServerAsync, o BeginAuthenticateAsServer .
Per eseguire questa operazione in modo asincrono, usare il ReadAsync metodo .