服务器上下文初始化
与客户端一样,服务器还会获取 凭据 句柄,以响应来自客户端的传入身份验证请求。 服务器凭据用于在支持服务器身份验证或相互身份验证安全协议中向客户端验证服务器。 服务器获取由用于启动服务器的服务帐户定义的凭据的句柄。 它通过调用 AcquireCredentialsHandle来执行此作。
服务器可以获取其凭据句柄,然后进入侦听状态,也可以等待侦听状态,直到连接请求到达,然后获取入站凭据句柄。 有关凭据函数的详细信息,请参阅 凭据管理。
当服务器从客户端收到连接请求消息时,它将使用 AcceptSecurityContext (常规)为客户端创建本地 安全上下文。 服务器使用此本地安全上下文来执行同一客户端的未来请求。 有关上下文函数的详细信息,请参阅 上下文管理。
服务器检查返回状态和输出缓冲区描述符,以确保到目前为止没有错误,如果出现错误,则可以拒绝连接请求。 如果输出缓冲区中 AcceptSecurityContext(常规)返回的信息,则会将该缓冲区捆绑到客户端的响应消息中。
AcceptSecurityContext(常规) 的任何输出缓冲区都必须发送回客户端。 此外,如果返回状态要求协议继续(SEC_I_CONTINUE_NEEDED或SEC_I_COMPLETE_AND_CONTINUE),则需要与客户端进行另一条消息交换。
对于其他腿,服务器会等待客户端使用另一条消息进行响应。 此等待可以超时,以避免拒绝服务攻击,客户端故意永远不会响应,导致服务器线程和很快,所有服务器线程停止响应。