AuthenticatedStream 类 
定义
重要
一些信息与预发行产品相关,相应产品在发行之前可能会进行重大修改。 对于此处提供的信息,Microsoft 不作任何明示或暗示的担保。
提供用于跨流传递凭据以及请求或对客户端服务器应用程序执行身份验证的方法。
public ref class AuthenticatedStream abstract : System::IO::Streampublic abstract class AuthenticatedStream : System.IO.Streamtype AuthenticatedStream = class
    inherit StreamPublic MustInherit Class AuthenticatedStream
Inherits Stream- 继承
- 继承
- 派生
示例
以下示例演示如何显示经过身份验证的流的属性。
// The following class displays the properties of an authenticatedStream.
public ref class AuthenticatedStreamReporter
{
public:
   static void DisplayProperties( AuthenticatedStream^ stream )
   {
      Console::WriteLine( L"IsAuthenticated: {0}", stream->IsAuthenticated );
      Console::WriteLine( L"IsMutuallyAuthenticated: {0}", stream->IsMutuallyAuthenticated );
      Console::WriteLine( L"IsEncrypted: {0}", stream->IsEncrypted );
      Console::WriteLine( L"IsSigned: {0}", stream->IsSigned );
      Console::WriteLine( L"IsServer: {0}", stream->IsServer );
   }
};
// The following class displays the properties of an authenticatedStream.
public class AuthenticatedStreamReporter
{
    public static void DisplayProperties(AuthenticatedStream stream)
    {
        Console.WriteLine("IsAuthenticated: {0}", stream.IsAuthenticated);
        Console.WriteLine("IsMutuallyAuthenticated: {0}", stream.IsMutuallyAuthenticated);
        Console.WriteLine("IsEncrypted: {0}", stream.IsEncrypted);
        Console.WriteLine("IsSigned: {0}", stream.IsSigned);
        Console.WriteLine("IsServer: {0}", stream.IsServer);
    }
}
' The following class displays the properties of an AuthenticatedStream.
Public Class AuthenticatedStreamReporter
    Public Shared Sub DisplayProperties(stream As AuthenticatedStream)
        Console.WriteLine("IsAuthenticated: {0}", stream.IsAuthenticated)
        Console.WriteLine("IsMutuallyAuthenticated: {0}", stream.IsMutuallyAuthenticated)
        Console.WriteLine("IsEncrypted: {0}", stream.IsEncrypted)
        Console.WriteLine("IsSigned: {0}", stream.IsSigned)
        Console.WriteLine("IsServer: {0}", stream.IsServer)
    End Sub
End Class
注解
此抽象类提供对经过身份验证的流通用的方法和属性。
经过身份验证的流可以提供身份验证、数据签名和加密服务,这些服务可以帮助维护使用 InnerStream传输的数据的完整性和机密性。
由派生自 AuthenticatedStream 以及客户端和服务器上支持的安全协议的安全协议实现的安全协议将确定应用程序可用的安全功能。 NegotiateStream 和 SslStream 类继承自 AuthenticatedStream,并分别实现协商和安全套接字层安全协议。
实施者说明
必须在派生类中重写以下成员:IsAuthenticated、IsEncrypted、IsMutuallyAuthenticated、IsServer和 IsSigned。
构造函数
| AuthenticatedStream(Stream, Boolean) | 初始化 AuthenticatedStream 类的新实例。 | 
属性
| CanRead | 在派生类中重写时,获取一个值,该值指示当前流是否支持读取。(继承自 Stream) | 
| CanSeek | 在派生类中重写时,获取一个值,该值指示当前流是否支持查找。(继承自 Stream) | 
| CanTimeout | 获取一个值,该值确定当前流是否可以超时。(继承自 Stream) | 
| CanWrite | 在派生类中重写时,获取一个值,该值指示当前流是否支持写入。(继承自 Stream) | 
| InnerStream | 获取此 AuthenticatedStream 用于发送和接收数据的流。 | 
| IsAuthenticated | 获取一个 Boolean 值,该值指示身份验证是否成功。 | 
| IsEncrypted | 获取一个 Boolean 值,该值指示是否对此 AuthenticatedStream 发送的数据进行加密。 | 
| IsMutuallyAuthenticated | 获取一个 Boolean 值,该值指示服务器和客户端是否已进行身份验证。 | 
| IsServer | 获取一个 Boolean 值,该值指示连接本地端是否作为服务器进行身份验证。 | 
| IsSigned | 获取一个 Boolean 值,该值指示是否使用此流发送的数据已签名。 | 
| LeaveInnerStreamOpen | 获取此 AuthenticatedStream 用于发送和接收数据的流是否已保持打开状态。 | 
| Length | 在派生类中重写时,获取流的长度(以字节为单位)。(继承自 Stream) | 
| Position | 在派生类中重写时,获取或设置当前流中的位置。(继承自 Stream) | 
| ReadTimeout | 获取或设置一个值(以毫秒为单位),该值确定流在超时前尝试读取的时间。(继承自 Stream) | 
| WriteTimeout | 获取或设置一个值(以毫秒为单位),该值确定流在超时之前尝试写入的时间。(继承自 Stream) | 
方法
| BeginRead(Byte[], Int32, Int32, AsyncCallback, Object) | 开始异步读取操作。 (请考虑改用 ReadAsync(Byte[], Int32, Int32)。(继承自 Stream) | 
| BeginWrite(Byte[], Int32, Int32, AsyncCallback, Object) | 开始异步写入操作。 (请考虑改用 WriteAsync(Byte[], Int32, Int32)。(继承自 Stream) | 
| Close() | 关闭当前流并释放与当前流关联的任何资源(如套接字和文件句柄)。 请确保流已正确释放,而不是调用此方法。(继承自 Stream) | 
| CopyTo(Stream) | 从当前流中读取字节并将其写入另一个流。 这两个流位置都是按复制的字节数进行高级的。(继承自 Stream) | 
| CopyTo(Stream, Int32) | 从当前流中读取字节,并使用指定的缓冲区大小将其写入另一个流。 这两个流位置都是按复制的字节数进行高级的。(继承自 Stream) | 
| CopyToAsync(Stream) | 从当前流异步读取字节并将其写入另一个流。 这两个流位置都是按复制的字节数进行高级的。(继承自 Stream) | 
| CopyToAsync(Stream, CancellationToken) | 使用指定的取消标记异步读取当前流中的字节并将其写入另一个流。 这两个流位置都是按复制的字节数进行高级的。(继承自 Stream) | 
| CopyToAsync(Stream, Int32) | 使用指定的缓冲区大小异步读取当前流中的字节并将其写入另一个流。 这两个流位置都是按复制的字节数进行高级的。(继承自 Stream) | 
| CopyToAsync(Stream, Int32, CancellationToken) | 使用指定的缓冲区大小和取消令牌异步读取当前流中的字节并将其写入另一个流。 这两个流位置都是按复制的字节数进行高级的。(继承自 Stream) | 
| CreateObjRef(Type) | 创建一个对象,其中包含生成用于与远程对象通信的代理所需的所有相关信息。(继承自 MarshalByRefObject) | 
| CreateWaitHandle() | 
		已过时.
	 
		已过时.
	 
		已过时.
	 分配 WaitHandle 对象。(继承自 Stream) | 
| Dispose() | 释放 Stream使用的所有资源。(继承自 Stream) | 
| Dispose(Boolean) | 释放 AuthenticatedStream 使用的非托管资源,并选择性地释放托管资源。 | 
| DisposeAsync() | 异步释放 AuthenticatedStream使用的非托管和管理资源。 | 
| DisposeAsync() | 异步释放 Stream使用的非托管资源。(继承自 Stream) | 
| EndRead(IAsyncResult) | 等待挂起的异步读取完成。 (请考虑改用 ReadAsync(Byte[], Int32, Int32)。(继承自 Stream) | 
| EndWrite(IAsyncResult) | 结束异步写入操作。 (请考虑改用 WriteAsync(Byte[], Int32, Int32)。(继承自 Stream) | 
| Equals(Object) | 确定指定的对象是否等于当前对象。(继承自 Object) | 
| Flush() | 在派生类中重写时,清除此流的所有缓冲区,并导致任何缓冲数据写入基础设备。(继承自 Stream) | 
| FlushAsync() | 异步清除此流的所有缓冲区,并导致任何缓冲数据写入基础设备。(继承自 Stream) | 
| FlushAsync(CancellationToken) | 异步清除此流的所有缓冲区,导致任何缓冲数据写入基础设备,并监视取消请求。(继承自 Stream) | 
| GetHashCode() | 用作默认哈希函数。(继承自 Object) | 
| GetLifetimeService() | 
		已过时.
	 检索控制此实例的生存期策略的当前生存期服务对象。(继承自 MarshalByRefObject) | 
| GetType() | 获取当前实例的 Type。(继承自 Object) | 
| InitializeLifetimeService() | 
		已过时.
	 获取生存期服务对象来控制此实例的生存期策略。(继承自 MarshalByRefObject) | 
| MemberwiseClone() | 创建当前 Object的浅表副本。(继承自 Object) | 
| MemberwiseClone(Boolean) | 创建当前 MarshalByRefObject 对象的浅表副本。(继承自 MarshalByRefObject) | 
| ObjectInvariant() | 
		已过时.
	 为 Contract提供支持。(继承自 Stream) | 
| Read(Byte[], Int32, Int32) | 在派生类中重写时,从当前流中读取字节序列,并通过读取的字节数推进流中的位置。(继承自 Stream) | 
| Read(Span<Byte>) | 在派生类中重写时,从当前流中读取字节序列,并通过读取的字节数推进流中的位置。(继承自 Stream) | 
| ReadAsync(Byte[], Int32, Int32) | 从当前流异步读取字节序列,并通过读取的字节数推进流中的位置。(继承自 Stream) | 
| ReadAsync(Byte[], Int32, Int32, CancellationToken) | 从当前流异步读取字节序列,按读取的字节数推进流中的位置,并监视取消请求。(继承自 Stream) | 
| ReadAsync(Memory<Byte>, CancellationToken) | 从当前流异步读取字节序列,按读取的字节数推进流中的位置,并监视取消请求。(继承自 Stream) | 
| ReadAtLeast(Span<Byte>, Int32, Boolean) | 至少从当前流中读取最小字节数,并通过读取的字节数提升流中的位置。(继承自 Stream) | 
| ReadAtLeastAsync(Memory<Byte>, Int32, Boolean, CancellationToken) | 异步读取当前流的最小字节数,按读取的字节数推进流中的位置,并监视取消请求。(继承自 Stream) | 
| ReadByte() | 从流中读取字节,并将流中的位置向前推进一个字节,或者在流末尾返回 -1。(继承自 Stream) | 
| ReadExactly(Byte[], Int32, Int32) | 从当前流中读取  | 
| ReadExactly(Span<Byte>) | 从当前流中读取字节,并在填充  | 
| ReadExactlyAsync(Byte[], Int32, Int32, CancellationToken) | 从当前流异步读取  | 
| ReadExactlyAsync(Memory<Byte>, CancellationToken) | 从当前流异步读取字节,在填充  | 
| Seek(Int64, SeekOrigin) | 在派生类中重写时,设置当前流中的位置。(继承自 Stream) | 
| SetLength(Int64) | 在派生类中重写时,设置当前流的长度。(继承自 Stream) | 
| ToString() | 返回一个表示当前对象的字符串。(继承自 Object) | 
| Write(Byte[], Int32, Int32) | 在派生类中重写时,将字节序列写入当前流,并通过写入的字节数推进此流中的当前位置。(继承自 Stream) | 
| Write(ReadOnlySpan<Byte>) | 在派生类中重写时,将字节序列写入当前流,并通过写入的字节数推进此流中的当前位置。(继承自 Stream) | 
| WriteAsync(Byte[], Int32, Int32) | 以异步方式将字节序列写入当前流,并通过写入的字节数推进此流中的当前位置。(继承自 Stream) | 
| WriteAsync(Byte[], Int32, Int32, CancellationToken) | 将字节序列异步写入当前流,按写入的字节数推进此流中的当前位置,并监视取消请求。(继承自 Stream) | 
| WriteAsync(ReadOnlyMemory<Byte>, CancellationToken) | 将字节序列异步写入当前流,按写入的字节数推进此流中的当前位置,并监视取消请求。(继承自 Stream) | 
| WriteByte(Byte) | 将字节写入流中的当前位置,并将流中的位置向前推进一个字节。(继承自 Stream) | 
扩展方法
| CopyToAsync(Stream, PipeWriter, CancellationToken) | 使用取消令牌从 Stream 异步读取字节并将其写入指定的 PipeWriter。 | 
| ConfigureAwait(IAsyncDisposable, Boolean) | 配置如何执行从异步可释放项返回的任务的 await。 |