还存在另一种访客账户,称为 Pure Guest(纯访客)。这是在没有已登录账户的情况下存在的账户类型。它无法进行已验证身份的 XBOX 服务调用,也无法游玩任何需要 XBOX 用户已登录的游戏。
- 访客账户注销
- 赞助用户注销
- 设备关机
在你的游戏中支持访客账户
在你的游戏中支持访客用户并非必需,但这是一种在不对用户处理进行大幅更改的情况下,允许没有 XBOX 账户的玩家在赞助设备上体验你内容的好方式。与完整的 XBOX 用户类似,访客用户可以通过使用XUserAddOptions::AllowGuests 选项调用 XUserAddAsync 来登录。登录后,访客会被分配一个 XUserHandle,它可用于所有以 XUserHandle 作为参数的 API。
XBOX 用户与访客用户之间的一个关键区别是能否确定性地识别用户。当访客登录时,他们无法控制选择哪个账户来赞助他们。如果一个访客注销后又有另一个访客登录,你无法确定他们是否是之前的同一位用户。如果你考虑为某个特定用户存储玩家偏好设置或缓存数据,请留意这一点。
与 XBOX 服务交互时 XBOX 用户与访客用户的区别
之后可以针对该用户调用 XblContextCreateHandle 以与 XBOX 服务通信。你可以通过对用户句柄调用 XUserGetIsGuest 来检查用户是否是访客。 XBOX 用户与访客用户的差异取决于所使用的 API。对于完全支持访客账户的服务,例如查询其他玩家的公开个人资料信息,这两种类型的用户使用赞助账户的权限的行为完全相同。 不支持访客用户的 XBOX 服务通常是那些存储或管理与特定用户相关联的长期数据的服务(例如统计信息、成就、社交关系等)。当使用访客用户调用这些服务时,会返回错误(通常是HTTP_E_STATUS_BAD_REQUEST)。
避免在不支持访客账户的 API 中使用访客账户是开发者的责任。下面列出了这些服务及其支持级别。
XBOX 用户账户订阅状态和家长控制
由于访客账户继承赞助账户的能力,该账户订阅类型(Gold 与 Silver)带来的任何限制以及为该账户启用的任何家长控制也会被继承。例如,如果赞助账户被 XBOX Community Policy & Enforcement 撤销了某些权限,则访客用户也会失去这些权限。XBOX 服务对访客账户的支持
访客用户的 XBOX 服务 API 支持
-
Cloud Storage
- 不支持
-
General
- Real-Time Activity (RTA) 支持取决于所订阅的服务
-
Identity
- Authentication
- 从赞助账户继承
- Privacy
- Permission Checking / Mute / Avoid lists
- 从赞助账户继承
- Permission Checking / Mute / Avoid lists
- Privileges
- Parental Controls
- 从赞助账户继承
- Privacy Settings
- 从赞助账户继承
- 赞助访客账户被移除的权限
- XPRIVILEGE_BROADCAST
- XPRIVILEGE_MANAGE_PROFILE_PRIVACY_SETTING
- XPRIVILEGE_GAME_DVR
- XPRIVILEGE_SOCIAL_NETWORK_SHARING
- XPRIVILEGE_ADD_FRIEND
- Parental Controls
- User Profile - 部分支持
- 访客可查看公开的 XBOX 个人资料数据
- Authentication
-
Multiplayer
- 从赞助账户继承
-
Player-Data
- Achievements - 不支持
- Stats - 不支持
-
已认证的自定义 Web 服务及服务到服务的调用
- 访客账户可以对自定义 Web 服务进行已认证的调用
- 访客账户可以在服务到服务调用中使用
-
Social
- Localized Strings - 不支持
- People-System - 不支持
- Presence - 不支持
- Reputation - 不支持
- Social Manager - 不支持
PlayFab
- PlayFab Party Chat
- 访客继承所赞助用户的权限,如果被赞助的账户拥有多人游戏和通信权限,则访客可以参与
