> ## Documentation Index
> Fetch the complete documentation index at: https://devdocs.xbox.com/llms.txt
> Use this file to discover all available pages before exploring further.

# XNetworkingVerifyServerCertificate

> XNetworkingVerifyServerCertificate

# XNetworkingVerifyServerCertificate

提供额外的证书链验证。

## 语法

```cpp theme={null}
HRESULT XNetworkingVerifyServerCertificate(
         void* requestHandle,
         const XNetworkingSecurityInformation* securityInformation
)
```

### 参数

*requestHandle*   \_In\_\
类型：void\*

类型为 [HINTERNET](https://learn.microsoft.com/windows/win32/winhttp/hinternet-handles-in-winhttp) 的句柄。若要获取有效句柄，请调用 [WinHttpOpenRequest](https://learn.microsoft.com/windows/win32/api/winhttp/nf-winhttp-winhttpopenrequest)。

*securityInformation*   \_In\_\
类型：[XNetworkingSecurityInformation](/reference/networking/xnetworking/structs/xnetworkingsecurityinformation)\*

指向 `XNetworkingSecurityInformation` 结构体的指针。若要获取合适的指针，请调用[XNetworkingQuerySecurityInformationForUrlAsyncResult](/reference/networking/xnetworking/functions/xnetworkingquerysecurityinformationforurlasyncresult) 函数。

### 返回值

类型：HRESULT

如果成功，则返回 `S_OK`。这表示服务器证书链有效。否则，返回一个错误代码，表示无法验证服务器链。应将所有失败视为 HTTP 请求的致命错误。

## 备注

<Note>此函数不能在时间敏感的线程上安全调用。有关详细信息，请参阅[时间敏感线程](https://learn.microsoft.com/gaming/gdk/docs/gdk-dev/console-dev/overviews/threads/time-sensitive-threads)。</Note>

应在 `WINHTTP_CALLBACK_STATUS_SENDING_REQUEST` WinHTTP 回调内部调用此函数。将之前调用 [XNetworkingQuerySecurityInformationForUrlAsync](/reference/networking/xnetworking/functions/xnetworkingquerysecurityinformationforurlasync) 返回的、已缓存的 `XNetworkingSecurityInformation` 结构体连同与该回调关联的 WinHTTP 请求句柄一起传入。有关回调的更多信息，请参阅 [WinHttpSendRequest](https://learn.microsoft.com/windows/win32/api/winhttp/nf-winhttp-winhttpsendrequest)。

如果 `XNetworkingVerifyServerCertificate` 函数失败，则游戏运行时很可能检测到与服务器的连接已被入侵。在这种情况下，你应在回调返回之前立即关闭 WinHTTP 请求句柄，以确保没有数据被传输到已被入侵的服务器或从中传出。

作为一种最佳做法，所有游戏通信，无论内容或协议如何，都应该是安全的。游戏应为其所有通信提供机密性、完整性和身份验证。有关详细信息，请参阅[通信安全概述（NDA 主题）](/build/game-principles/security/communication-security-overview)

## 要求

**头文件：** XNetworking.h

**库：** xgameruntime.lib

**支持的平台：** Windows、XBOX One 系列主机和 XBOX Series 主机

## 概念文档

* [WinHTTP 概述](/build/console-features/networking/web-requests/intro-winhttp)
* [时间敏感线程](https://learn.microsoft.com/gaming/gdk/docs/gdk-dev/console-dev/overviews/threads/time-sensitive-threads)

## 另请参阅

[HTTP 和 WebSocket](/build/console-features/networking/web-requests/http-networking)\
[XNetworking](/reference/networking/xnetworking/xnetworking_members)


## Related topics

- [WinHTTP 概述](/zh-CN/build/console-features/networking/web-requests/intro-winhttp.md)
- [XNetworking](/zh-CN/reference/networking/xnetworking/xnetworking_members.md)
- [面向 GDK 的 Unity C# API 包装器](/zh-CN/build/gdk-and-engines/unity/unity-api-wrappers.md)
- [certificate_deleted](/zh-CN/services/playfab/api-references/events/MultiplayerServers/certificate-deleted.md)
- [certificate_uploaded](/zh-CN/services/playfab/api-references/events/MultiplayerServers/certificate-uploaded.md)
