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

# Utilisation côté client des privilèges utilisateur des services XBOX

> Vérifiez les privilèges utilisateur des services XBOX depuis votre client avec XUserCheckPrivilege et XUserResolvePrivilegeWithUiAsync pour piloter l'interface de vente incitative sur XBOX et PC.

Utilisez cette rubrique pour vérifier et résoudre les privilèges utilisateur disponibles sur les services XBOX,
et pour déterminer le système de vente incitative (upsell) sur une console XBOX ou un PC Windows.

## Prérequis

Pour gérer les privilèges utilisateur dans votre application cliente des services XBOX, configurez votre jeu pour l'authentification auprès des services XBOX.
Pour plus d'informations, consultez [Vue d'ensemble de l'authentification et de la connexion](https://docs.xbox.com/fr/services/xbox-services/fundamentals/identity/auth/live-authentication-overview.md) et [Vue d'ensemble des privilèges utilisateur des services XBOX](https://docs.xbox.com/fr/services/xbox-services/fundamentals/identity/privileges/live-user-privileges-overview.md).

## Gestion côté client et expérience du joueur pour les privilèges et la vente incitative

Les applications clientes sont soumises à des exigences XBOX (XR) qui imposent que des privilèges contrôlent une
partie du jeu, comme la XR-045 : Réseau XBOX et privilèges de compte.
Pour plus d'informations, consultez [XR-045 : Réseau XBOX et privilèges de compte](https://docs.xbox.com/fr/publishing/certification/xr/xr-045.md).

Pour les jeux contrôlés par des privilèges, vous pouvez utiliser des API. [XUserCheckPrivilege](https://docs.xbox.com/fr/reference/system/xuser/functions/xusercheckprivilege.md)
détermine si un joueur dispose d'un privilège spécifique. [XUserResolvePrivilegeWithUiAsync](https://docs.xbox.com/fr/reference/system/xuser/functions/xuserresolveprivilegewithuiasync.md) affiche une interface utilisateur (UI) qui aide les joueurs à résoudre les problèmes liés au privilège spécifié.
L'interface explique pourquoi le joueur ne dispose pas d'un privilège.

Par exemple, un jeu soumis au privilège `XPRIVILEGE_MULTIPLAYER_SESSIONS` suit le flux ci-dessous.

1. Le joueur voit une option permettant de démarrer une session multijoueur et tente de lancer une partie
   en sélectionnant l'option appropriée dans l'interface.
2. Le jeu vérifie l'« indice » à l'aide de l'API `XUserCheckPrivilege`.

   * S'il est présent, considérez que le joueur dispose du privilège et poursuivez.
   * S'il n'est pas présent, passez à l'étape suivante.

   > [!NOTE]
   >
   > Les API des services XBOX renvoient un code d'état 403 (`HTTP_E_STATUS_FORBIDDEN`) lorsque l'accès à une fonctionnalité est refusé en raison d'un privilège manquant dans le XToken.
   > Tous les points de terminaison des services XBOX appliquent le contrôle d'accès basé sur les privilèges lorsque cela est approprié.
3. En réponse au code d'échec, le jeu appelle alors `XUserResolvePrivilegeWithUiAsync` avec l'ID de privilège
   approprié correspondant à celui que vous essayez de résoudre. Cette fonction appelle les services XBOX pour vérifier si le joueur dispose du privilège,
   puis indique au joueur pourquoi l'action a échoué ou lui affiche
   l'interface permettant de résoudre le problème. Cet appel d'API peut entraîner les résultats suivants.

   * Afficher l'interface relative à l'état d'application des sanctions du joueur
     émis par les modérateurs des stratégies et de l'application des règles des services XBOX.
   * Afficher l'interface relative au contrôle parental.
   * Promouvoir un service d'abonnement applicable, comme un abonnement XBOX Game Pass Essential.
   * Renvoyer le résultat au jeu (réussite ou échec, avec une raison).

   > [!NOTE]
   >
   > Si les services XBOX ou le réseau sont inaccessibles, `XUserResolvePrivilegeWithUiAsync` échoue.
   > Cet échec doit être traité comme si le joueur ne disposait pas du privilège.
4. Au retour de `XUserResolvePrivilegeWithUiAsync` :
   1. Si un échec est renvoyé, le jeu doit permettre au joueur de continuer à sélectionner le bouton,
      car (par exemple) les bannissements du joueur peuvent expirer ou le contrôle parental peut changer.
   2. Si une réussite est renvoyée, le problème du joueur a été résolu et votre jeu peut tenter à nouveau l'action.
      Le jeton du joueur contiendra les privilèges nécessaires à l'issue de la résolution effectuée par `XUserResolvePrivilegeWithUiAsync`.

> [!NOTE]
>
> Les privilèges sont des vérifications de haut niveau qui répondent à la question « Puis-je ? » Par exemple : « Ce joueur peut-il accéder aux fonctionnalités multijoueur ? » Cependant, les privilèges ne sont pas les seules autorisations que votre jeu doit vérifier.
>
> Pour plus d'informations sur les privilèges qui s'appliquent à votre titre, consultez [XR-045 : Réseau XBOX et privilèges de compte](https://docs.xbox.com/fr/publishing/certification/xr/xr-045.md).

### Exemple de code

Utilisez l'exemple de code suivant pour vérifier le privilège multijoueur d'un joueur avant que votre titre ne lui donne accès aux fonctionnalités multijoueur. `OnMultiplayerAllowed` et `OnMultiplayerDenied` sont des fonctions définies par votre titre. L'exemple signale chaque résultat par l'intermédiaire de l'une d'elles et n'active le multijoueur qu'après une vérification réussie ou une résolution de privilège réussie. L'exemple nécessite `XUser.h`, `XAsync.h` et `<memory>`. Les handles `userHandle` et `queue` doivent rester valides jusqu'à l'exécution des rappels d'achèvement.

```cpp theme={null}
void OnMultiplayerAllowed(XUserHandle userHandle);
void OnMultiplayerDenied(XUserHandle userHandle, HRESULT hr);

// Called when the player selects a multiplayer option.
void CheckMultiplayerPrivilege(XUserHandle userHandle, XTaskQueueHandle queue)
{
    bool hasPrivilege = false;

    // Check the Multiplayer (254) privilege. The deny reason is informational only.
    HRESULT hr = XUserCheckPrivilege(
        userHandle,
        XUserPrivilegeOptions::None,
        XUserPrivilege::Multiplayer,
        &hasPrivilege,
        nullptr);

    if (FAILED(hr) && hr != E_GAMEUSER_RESOLVE_USER_ISSUE_REQUIRED)
    {
        // The check didn't complete. Deny access to multiplayer.
        OnMultiplayerDenied(userHandle, hr);
        return;
    }

    if (SUCCEEDED(hr) && hasPrivilege)
    {
        OnMultiplayerAllowed(userHandle);
        return;
    }

    auto asyncBlock = std::make_unique<XAsyncBlock>();
    ZeroMemory(asyncBlock.get(), sizeof(XAsyncBlock));
    asyncBlock->queue = queue;
    asyncBlock->context = userHandle;

    if (hr == E_GAMEUSER_RESOLVE_USER_ISSUE_REQUIRED)
    {
        // There's an issue with the user that must be resolved before the privilege can be checked.
        asyncBlock->callback = [](XAsyncBlock* async)
        {
            std::unique_ptr<XAsyncBlock> asyncOwner{ async };
            XUserHandle user = static_cast<XUserHandle>(async->context);

            HRESULT hr = XUserResolveIssueWithUiResult(async);
            if (SUCCEEDED(hr))
            {
                // The issue is resolved. Check the privilege again.
                CheckMultiplayerPrivilege(user, async->queue);
            }
            else
            {
                // Deny access. Let the player select the option again later.
                OnMultiplayerDenied(user, hr);
            }
        };

        hr = XUserResolveIssueWithUiAsync(userHandle, nullptr, asyncBlock.get());
    }
    else
    {
        // The check succeeded, but the player doesn't have the privilege.
        asyncBlock->callback = [](XAsyncBlock* async)
        {
            std::unique_ptr<XAsyncBlock> asyncOwner{ async };
            XUserHandle user = static_cast<XUserHandle>(async->context);

            HRESULT hr = XUserResolvePrivilegeWithUiResult(async);
            if (SUCCEEDED(hr))
            {
                // The player now has the privilege. It isn't necessary to call XUserCheckPrivilege again.
                OnMultiplayerAllowed(user);
            }
            else
            {
                // Deny access. Let the player select the option again later.
                OnMultiplayerDenied(user, hr);
            }
        };

        hr = XUserResolvePrivilegeWithUiAsync(
            userHandle,
            XUserPrivilegeOptions::None,
            XUserPrivilege::Multiplayer,
            asyncBlock.get());
    }

    if (SUCCEEDED(hr))
    {
        // The UI started. The completion callback owns the XAsyncBlock and reports the outcome.
        // Success here doesn't mean that the player has the privilege.
        asyncBlock.release();
    }
    else
    {
        // The UI didn't start. Deny access to multiplayer.
        OnMultiplayerDenied(userHandle, hr);
    }
}
```

## Bonnes pratiques de gestion des privilèges côté application

Lorsque vous gérez les privilèges utilisateur dans votre titre, veillez à appliquer les bonnes pratiques suivantes.

### Fréquence de résolution des privilèges dans l'application

Pour les vérifications de privilèges, l'exigence est de s'assurer, une fois par lancement, que le joueur dispose des privilèges appropriés et de les résoudre.
Nous recommandons d'effectuer la vérification à chaque session logique et à chaque action distincte.

Votre définition d'une session peut varier considérablement selon l'utilisation de votre application.

Voici des exemples de bonnes pratiques.

* Pour les applications de streaming multimédia, comme les lecteurs vidéo, résolvez les vérifications de privilèges à chaque sélection du bouton **Lecture** (début du flux) ou au début d'une playlist (pour plusieurs flux, comme une playlist musicale).
* Pour les applications de messagerie, vérifiez les privilèges une fois, pour le premier message envoyé.
* Pour les jeux multijoueur qui utilisent des services de matchmaking tiers, résolvez les vérifications de privilèges au début de chaque session (partie).

### Ne jamais présumer du niveau d'abonnement d'un utilisateur

Historiquement, les revendications de la XBOX 360 fournissaient des informations sur le niveau d'abonnement du joueur (comme le statut XBOX Game Pass Essential).
Cette revendication a été dépréciée avec l'introduction de la famille XBOX One et des générations suivantes.
Veillez à prendre vos décisions en vous fondant sur les privilèges. Le niveau de l'utilisateur, ou la façon dont il a obtenu un privilège, doit rester opaque pour l'application.

### Mode hors ligne

Si `XUserCheckPrivilege` indique que le service est indisponible ou inaccessible, traitez ce résultat comme si la vérification du privilège avait échoué.
Ainsi, votre jeu dispose d'une sécurité qui lui permet de rester conforme aux XR.

### Cibler le bon joueur

Nous vous recommandons de toujours faire référence au joueur agissant si aucun autre joueur n'est spécifié pour la vérification du privilège.
Si votre jeu permet de désigner un utilisateur, utilisez l'utilisateur actuellement désigné.

Par exemple, trois joueurs sont connectés : Bill, Bob et Beth.
Votre jeu permet de basculer entre les « joueurs actifs » pour désigner celui dont les recommandations, l'historique et les paramètres doivent être utilisés.
Beth a lancé votre application.
Pendant l'exécution de votre jeu, le joueur actif est passé à Bob.
Bob dispose d'un profil, d'un ensemble de recommandations et d'un historique distincts.
Appelez `XUserCheckPrivilege` pour lancer une vérification de privilège pour Bob.

### Vérification sans interface ou avec l'interface hors focus

Il arrive que votre jeu ne puisse pas afficher de fenêtre modale, ce qui bloque l'expérience utilisateur de la vérification de privilège.
Par exemple, lorsque le jeu diffuse de la musique en arrière-plan, ou lors
d'appels entrants alors que l'application Skype s'exécute en arrière-plan.
Votre jeu doit néanmoins vérifier le privilège. Nous vous recommandons d'appeler `XUserCheckPrivilege`.
`XUserCheckPrivilege` renvoie l'état d'autorisation actuel de l'utilisateur, ou un échec applicable, au lieu d'afficher l'interface.
Votre jeu peut agir sur le joueur en fonction de ses privilèges et l'informer de la vérification
du privilège lorsque votre jeu reprend le focus.

À l'inverse, votre titre peut afficher au joueur des informations d'erreur non modales, ou une autre expérience utilisateur, selon vos besoins.
Lorsqu'il est approprié d'afficher au joueur une expérience bloquante, appelez à nouveau `XUserResolvePrivilegeWithUiAsync` pour afficher l'expérience adéquate, comme la vente incitative ou l'état d'application des sanctions.

## Test du contrôle d'accès basé sur les privilèges dans vos jeux

Les privilèges sont calculés à partir des données suivantes.

* Droits d'abonnement effectifs du joueur
* Droits de privilège effectifs de l'appareil
* Droits de privilège effectifs de la plateforme cliente
* Droits de privilège effectifs du jeu en cours
  * Il est possible d'empaqueter un jeu avec un ensemble de privilèges afin que tous les joueurs du jeu obtiennent automatiquement ces privilèges pour une utilisation dans le jeu en cours d'exécution. Si votre jeu nécessite cette fonctionnalité, contactez votre gestionnaire de compte Microsoft.
* Contrôle parental permettant aux parents de décider des privilèges à ajouter ou à retirer pour les enfants de leur famille
* Les modérateurs XBOX peuvent supprimer des privilèges pour les joueurs ou les appareils identifiés comme abusant du service

### Gestion et vérification des privilèges et autorisations des joueurs

Les paramètres de confidentialité des joueurs sont accessibles de deux façons.

* Sur PC : accédez à [https://aka.ms/XboxPrivSettings](https://aka.ms/XboxPrivSettings).
* Sur XBOX : accédez à Paramètres -> Général -> Sécurité en ligne et famille -> Confidentialité et sécurité en ligne -> Confidentialité XBOX

#### Privilèges vérifiés avec XUserCheckPrivilege

##### XUserPrivilege::CrossPlay

* Description : permet à un joueur de participer à une session de jeu avec d'autres joueurs réels qui ne sont pas connectés aux services XBOX, dans des scénarios tels que : gameplay joueur contre joueur synchrone dans la même session, gameplay asynchrone au tour par tour, gameplay en équipe, matchmaking initié par l'utilisateur, envoi ou acceptation d'invitations, sessions avec jonction en cours de partie.
* Exigence : XR-045 - XBOX services and Account Privileges
* ID de privilège : 185
* Paramètre sur PC : Vous pouvez jouer avec des personnes en dehors des services XBOX
* Paramètre sur XBOX : Vous pouvez rejoindre le jeu entre réseaux

##### XUserPrivilege::Sessions

* Description : permet à un joueur de participer à des expériences solo connectées dans des environnements partagés, ou dans des scénarios où un titre hybride, à la fois free-to-play et multijoueur payant, utilise ce privilège pour contrôler ces expériences sur les consoles XBOX. Les expériences solo ne doivent comporter aucune fonctionnalité couverte par les privilèges 252 ou 254 (respectivement Communications et Multiplayer). L'utilisation de ce privilège est une fonctionnalité de titre qui nécessite l'approbation de la plateforme.
* Exigence : XR-045 - XBOX services and Account Privileges
* ID de privilège : 189
* Paramètre sur PC : Vous pouvez rejoindre des jeux multijoueur
* Paramètre sur XBOX : Vous pouvez rejoindre des jeux multijoueur

##### XUserPrivilege::Multiplayer

* Description : permet à un joueur de rejoindre des sessions de jeu multijoueur en ligne avec des utilisateurs réels (et non des bots), dans des scénarios tels que : gameplay joueur contre joueur synchrone dans la même session, gameplay asynchrone au tour par tour, gameplay en équipe, matchmaking initié par l'utilisateur, envoi ou acceptation d'invitations, sessions avec jonction en cours de partie. Notez que ce privilège ne concerne pas les jeux multijoueur locaux exécutés sur le même appareil.
* Exigence : XR-045 - XBOX services and Account Privileges
* ID de privilège : 254
* Paramètre sur PC : Vous pouvez rejoindre des jeux multijoueur
* Paramètre sur XBOX : Vous pouvez rejoindre des jeux multijoueur

##### XUserPrivilege::UserGeneratedContent

* Description : permet à un joueur de voir l'UGC d'autres utilisateurs en ligne, de télécharger l'UGC d'autres utilisateurs ou de partager son propre UGC en ligne. Cela ne restreint pas l'utilisation de l'UGC déjà téléchargé.
* Exigence : XR-045 - XBOX services and Account Privileges
* ID de privilège : 247
* Paramètre sur PC : Vous pouvez voir et charger des créations de la communauté
* Paramètre sur XBOX : Vous pouvez voir et charger des créations de la communauté

##### XUserPrivilege::SocialNetworkSharing

* Description : consoles XBOX uniquement : permet à un joueur de partager des informations, notamment la progression dans le jeu, le contenu généré par Kinect, les clips de jeu, etc., en dehors du réseau XBOX.
* Exigence : XR-045 - XBOX services and Account Privileges
* ID de privilège : 220
* Paramètre sur XBOX : Vous pouvez partager en dehors de XBOX

##### XUserPrivilege::Communications

* Description : permet à un joueur de communiquer avec n'importe quel autre utilisateur des services XBOX par la voix ou le texte.
* Exigence : XR-045 - XBOX services and Account Privileges
* ID de privilège : 252
* Paramètre sur PC : Les autres peuvent communiquer par la voix, le texte ou des invitations
* Paramètre sur XBOX : Les autres peuvent communiquer par la voix, le texte ou des invitations

#### Autorisations vérifiées avec XblPrivacyCheckPermissionAsync

Les titres peuvent également utiliser XblPrivacyBatchCheckPermissionAsync lorsque les autorisations doivent être vérifiées pour plusieurs utilisateurs, et XblPrivacyCheckPermissionForAnonymousUserAsync lors de la vérification des autorisations pour un utilisateur qui n'appartient pas aux services XBOX.

##### XblPermission::CommunicateUsingText

* Description : vérifie si le joueur peut envoyer un message au contenu textuel à l'utilisateur cible. Cette valeur ne change pas si le joueur a ignoré (mute) l'utilisateur cible. Utilisez plutôt CommunicateUsingVoice. Cette valeur est false si, par exemple, vous avez limité vos communications aux amis uniquement et que la cible n'est pas un ami. Cette valeur est false si, par exemple, le joueur cible vous a bloqué. Cette valeur est false si, par exemple, vous avez défini vos paramètres de communication sur Bloqué.
* Exigence : XR-015 - Managing Player Communication
  * Lors de la vérification d'un autre utilisateur des services XBOX
    * Paramètre sur PC : Les autres peuvent communiquer par la voix, le texte ou des invitations
    * Paramètre sur XBOX : Les autres peuvent communiquer par la voix, le texte ou des invitations
  * Lors de la vérification d'un utilisateur anonyme
    * Paramètre sur PC : Vous pouvez communiquer en dehors des services XBOX par la voix et le texte
    * Paramètre sur XBOX : Vous pouvez communiquer en dehors de XBOX par la voix et le texte

##### XblPermission::CommunicateUsingVoice

* Description : vérifie si le joueur peut communiquer par la voix avec l'utilisateur cible. Cette valeur est false si le joueur a ignoré (mute) l'utilisateur cible.
* Exigence : XR-015 - Managing Player Communication
  * Lors de la vérification d'un autre utilisateur des services XBOX
    * Paramètre sur PC : Les autres peuvent communiquer par la voix, le texte ou des invitations
    * Paramètre sur XBOX : Les autres peuvent communiquer par la voix, le texte ou des invitations
  * Lors de la vérification d'un utilisateur anonyme
    * Paramètre sur PC : Vous pouvez communiquer en dehors des services XBOX par la voix et le texte
    * Paramètre sur XBOX : Vous pouvez communiquer en dehors de XBOX par la voix et le texte

### Test des privilèges fournis par les abonnements

Vous pouvez créer des [comptes de test](https://docs.xbox.com/fr/services/xbox-services/develop/test-accounts/live-setup-testaccounts.md) disposant d'un abonnement XBOX Game Pass Essential à l'aide de [Partner Center](https://partner.microsoft.com/dashboard/).
Utilisez ces comptes pour tester votre logique de privilèges pour les privilèges offerts par un abonnement XBOX Game Pass Essential.

Vous pouvez acheter d'autres abonnements à l'aide de votre [compte de test](https://docs.xbox.com/fr/services/xbox-services/develop/test-accounts/live-setup-testaccounts.md) sur un client de développement.

> [!NOTE]
>
> L'abonnement doit être publié dans un sandbox de développement dans lequel votre compte ou votre appareil est autorisé, et le compte du client de développement doit être actif dans le même sandbox.

Vous ne pouvez pas acheter directement d'abonnements XBOX Game Pass Essential commerciaux à l'aide d'un [compte de test](https://docs.xbox.com/fr/services/xbox-services/develop/test-accounts/live-setup-testaccounts.md) créé via [Partner Center](https://partner.microsoft.com/dashboard/).
Vous pouvez à la place acheter une version de XBOX Game Pass Essential réservée aux développeurs, qui ne s'applique qu'aux scénarios de développement.

### Test des privilèges fournis par le jeu en cours d'exécution

Si vous souhaitez configurer un jeu pour qu'il accorde automatiquement des privilèges aux joueurs lorsqu'ils sont dans le jeu, contactez votre gestionnaire de compte Microsoft.
Le test de ce scénario nécessite de configurer votre jeu pour l'authentification auprès des services XBOX et d'exécuter le jeu avec des joueurs connectés.

### Test des privilèges retirés par le contrôle parental

Pour tester votre logique de privilèges avec des privilèges pouvant être retirés par le contrôle parental (comme `XPRIVILEGE_COMMUNICATIONS`), configurez des comptes familiaux sur l'appareil client.
Les parents ou tuteurs peuvent utiliser l'appareil pour restreindre les privilèges des enfants de leur famille.

Un joueur peut également restreindre les privilèges de son propre compte.
Nous vous recommandons d'utiliser cette méthode pour tester les scénarios qui nécessitent la restriction des privilèges d'un utilisateur.

> [!NOTE]
>
> [Partner Center](https://partner.microsoft.com/dashboard/) ne permet pas actuellement de créer des familles de [comptes de test](https://docs.xbox.com/fr/services/xbox-services/develop/test-accounts/live-setup-testaccounts.md).

## ID de privilège à vérifier

Votre titre doit vérifier les ID de privilège suivants. Pour plus d'informations, consultez [XR-045 : Réseau XBOX et privilèges de compte](https://docs.xbox.com/fr/publishing/certification/xr/xr-045.md).

| ID de privilège | Nom du privilège | Constante d'énumération | Description |
| - | - | - | - |
| 254 | `XPRIVILEGE_MULTIPLAYER_SESSIONS` | `XUserPrivilege::Multiplayer` | Lorsque ce privilège est présent, le joueur peut rejoindre les sessions multijoueur d'un jeu. |
| 185 | `XPRIVILEGE_CROSS_PLAY` | `XUserPrivilege::CrossPlay` | Le joueur peut participer à une session de jeu avec d'autres utilisateurs réels qui ne sont pas connectés aux services XBOX. Parmi les scénarios possibles figurent le gameplay utilisateur contre utilisateur synchrone dans la même session, le gameplay asynchrone au tour par tour, le gameplay en équipe, le matchmaking initié par l'utilisateur, l'envoi ou l'acceptation d'invitations et les sessions avec jonction en cours de partie. |
| 252 | `XPRIVILEGE_COMMUNICATIONS` | `XUserPrivilege::Communications` | Lorsque ce privilège est présent, le joueur peut utiliser le chat vocal ou la messagerie texte avec n'importe qui. Des vérifications d'autorisations de confidentialité supplémentaires sont nécessaires pour déterminer avec qui le joueur est autorisé à communiquer. |
| 189 | `XPRIVILEGE_SESSIONS` | `XUserPrivilege::Sessions` | Le joueur peut participer à des expériences solo connectées dans des environnements partagés. Ces expériences ne peuvent comporter aucune fonctionnalité couverte par le privilège 252 (`XPRIVILEGE_COMMUNICATIONS`) ou 254 (`XPRIVILEGE_MULTIPLAYER_SESSIONS`). L'utilisation de ce privilège est une fonctionnalité de titre qui nécessite l'approbation de la plateforme. |
| 247 | `XPRIVILEGE_USER_CREATED_CONTENT` | `XUserPrivilege::UserGeneratedContent` | Lorsque ce privilège est présent, le joueur peut télécharger et consulter du contenu en ligne créé par les utilisateurs. |
| 220 | `XPRIVILEGE_SOCIAL_NETWORK_SHARING` | `XUserPrivilege::SocialNetworkSharing` | Lorsque ce privilège est présent, le joueur peut partager des informations de progression sur les réseaux sociaux. |

Pour plus d'informations sur les privilèges disponibles, consultez [XUserPrivilege](https://docs.xbox.com/fr/reference/system/xuser/enums/xuserprivilege.md).

### Logique de calcul des privilèges

Les privilèges sont calculés indépendamment pour chaque joueur connecté simultanément sur une console ou un autre appareil.
Des privilèges sont ajoutés à partir des droits effectifs de l'utilisateur, de l'appareil, du titre en cours d'exécution et de la plateforme.
Des privilèges sont ensuite retirés pour chaque joueur en fonction du contrôle parental, de l'état des stratégies et de l'application des sanctions des services XBOX, et du statut d'invité de chaque utilisateur.

Les droits effectifs peuvent provenir d'abonnements achetés par l'utilisateur, achetés par d'autres utilisateurs connectés en même temps, ou d'abonnements directement associés à un appareil.
Les droits effectifs peuvent également provenir d'offres promotionnelles, comme les événements « Week-end multijoueur gratuit ».

#### Droits de privilège liés au type d'appareil

Certains types d'appareils (comme les consoles de la famille XBOX One et XBOX Series, les PC Windows ou les appareils mobiles) accordent automatiquement un ensemble de privilèges à tout joueur qui se connecte aux services XBOX depuis la plateforme.

#### Droits de privilège effectifs liés aux abonnements

Les produits d'abonnement peuvent fournir un ensemble de privilèges aux utilisateurs concernés.
Voici les scénarios dans lesquels un joueur se voit effectivement accorder des privilèges basés sur un abonnement.

* Le joueur a acheté le produit d'abonnement.
* Un autre joueur actif sur le même appareil a acheté le produit d'abonnement.
* Le produit d'abonnement est associé à l'appareil que le joueur utilise actuellement.

Depuis la XBOX One, l'abonnement XBOX Game Pass Essential suit cette logique.
Il est possible d'associer un abonnement XBOX Game Pass Essential à un appareil ; tous les utilisateurs de l'appareil bénéficient alors effectivement
des privilèges associés au niveau d'abonnement XBOX Game Pass Essential.
Tout utilisateur, y compris les invités parrainés, actif simultanément sur un appareil avec un joueur ayant acheté un
abonnement XBOX Game Pass Essential bénéficie effectivement des privilèges associés à l'abonnement XBOX Game Pass Essential.

Les abonnements partenaires peuvent également être utilisés pour accorder des privilèges à un utilisateur actif.
En outre, les privilèges associés à un abonnement partenaire peuvent n'être accordés que lorsqu'un titre participant spécifique est en cours d'exécution.

#### Droits promotionnels

Les droits promotionnels ajoutent des privilèges pendant une période limitée aux utilisateurs qui répondent à certains critères dynamiques.
Par exemple, une promotion peut offrir le privilège multijoueur à certains utilisateurs pendant la durée d'un week-end.
Les promotions passées, comme un « Week-end XBOX Game Pass Essential gratuit », suivent le modèle des droits promotionnels.

\[!NOTE] Vos services et vos titres n'ont pas besoin d'avoir directement connaissance de promotions de ce type.
Les privilèges issus des droits promotionnels sont calculés dynamiquement lorsque des jetons XBOX Security Token Service (XSTS) sont émis pour les utilisateurs qui se connectent au service.

#### Privilèges retirés aux comptes invités parrainés

Les invités parrainés sont des comptes invités connectés aux services XBOX.
Les invités parrainés n'existent qu'en présence d'au moins un autre joueur actif sur l'appareil client,
par exemple dans un jeu multijoueur en écran partagé où un seul joueur est connecté.
Ces comptes sont des utilisateurs authentifiés et obtiennent un jeton comme n'importe quel autre utilisateur authentifié.
Les invités parrainés disposent de privilèges, mais certains privilèges ne sont pas accordés aux joueurs invités, quels que soient les droits effectifs de l'invité parrainé ou le jeu en cours d'exécution.

Pour vérifier les privilèges des invités parrainés, appelez `XUserCheckPrivilege`. Cette fonction ne tente pas de résolution.
Vous n'avez pas besoin d'afficher d'interface de résolution ni d'appeler `XUserResolvePrivilegeWithUiAsync`, car les invités parrainés ne peuvent pas être « résolus ». Contrairement aux comptes XBOX actifs, les invités parrainés n'ont aucun moyen d'effectuer des achats, ne peuvent pas faire l'objet de sanctions et ne disposent pas d'un ensemble unique de privilèges ou de restrictions.

Si un joueur n'est pas connecté (comme c'est le cas d'un « invité pur »), aucun jeton n'est émis pour l'utilisateur.
Cela signifie qu'aucun privilège effectif n'est calculé pour aucun joueur de l'appareil.

La XR-045 exige que votre titre vérifie le privilège 220 à l'aide de `XPRIVILEGE_SOCIAL_NETWORK_SHARING` ou de `XUserPrivilege::SocialNetworkSharing`. Il s'agit de l'un des privilèges retirés aux invités.

#### Sécurité en ligne et application des règles par Microsoft

Les modérateurs des stratégies et de l'application des règles des services XBOX peuvent retirer des privilèges aux utilisateurs ou appareils abusifs.

#### Contrôle parental

Les parents peuvent retirer des privilèges aux comptes enfants de leur famille, quels que soient l'abonnement de l'enfant ou le titre en cours d'exécution.
Cette gestion s'effectue via la console XBOX ou l'[application XBOX Family Settings](https://www.xbox.com/en-US/apps/family-settings-app).

#### Privilèges des abonnés XBOX Game Pass Essential

Les stratégies relatives aux droits de privilège d'un abonnement donné sont dynamiques et évolueront au fil du temps.
N'oubliez pas que même si un abonné bénéficie d'un privilège, il peut le perdre en raison de modifications du contrôle parental ou des stratégies d'application des règles.

> [!NOTE]
>
> Les privilèges ne reflètent pas fidèlement l'abonnement actuel d'un utilisateur.

La XR-045 exige que votre titre vérifie le privilège 254 à l'aide de `XPRIVILEGE_MULTIPLAYER_SESSIONS` ou de `XUserPrivilege::Multiplayer`. Il s'agit de l'un des privilèges dont bénéficient les abonnés XBOX Game Pass Essential.

#### Abonnements partenaires et privilèges

Il est possible de configurer des abonnements partenaires pour fournir un ensemble de privilèges des services XBOX.
Les abonnements partenaires ne sont utilisés pour calculer les privilèges d'un joueur que lorsque celui-ci est connecté à des jeux explicitement associés à l'abonnement.

Pour configurer des abonnements partenaires, contactez votre gestionnaire de compte Microsoft.

Les abonnements partenaires peuvent être testés dans des sandboxes de développement avant leur publication.
Seuls les utilisateurs et les appareils autorisés à utiliser ces sandboxes de développement peuvent acheter ces abonnements.

#### Titres free-to-play et privilèges multijoueur

Pour les titres spécifiquement configurés pour fonctionner selon un modèle free-to-play (F2P), le privilège `XPRIVILEGE_MULTIPLAYER_SESSIONS` / `XUserPrivilege::Multiplayer` doit être vérifié, comme d'habitude. Cependant, avec cette configuration, les utilisateurs disposent du privilège multijoueur, qu'ils aient ou non un abonnement XBOX Game Pass Essential. Ce privilège n'est refusé que si un joueur est banni ou bloqué, ou soumis à une restriction d'âge. L'utilisation de ce privilège est une fonctionnalité de titre qui nécessite l'approbation de la plateforme. Collaborez avec votre gestionnaire Microsoft ou votre Developer Partner Manager (DPM) pour activer cette fonctionnalité pour votre titre.

#### Titres hybrides et privilèges multijoueur

Pour les titres spécifiquement configurés pour fonctionner selon un modèle hybride (c'est-à-dire les titres qui contiennent des scénarios multijoueur nécessitant un abonnement payant, mais aussi des scénarios jouables gratuitement), le processus de vérification des privilèges est légèrement différent.

Pour le contenu qui nécessite un abonnement payant, le privilège `XPRIVILEGE_MULTIPLAYER_SESSIONS` / `XUserPrivilege::Multiplayer` doit être vérifié. Pour les scénarios multijoueur gratuits, c'est en revanche le privilège `XPRIVILEGE_SESSIONS` / `XUserPrivilege::Sessions` qui est vérifié. Ce privilège n'est refusé que si un joueur est banni ou bloqué, ou soumis à une restriction d'âge. Le privilège Multiplayer est également refusé pour ces raisons, mais son octroi nécessite en outre un abonnement payant. L'utilisation de ce privilège est une fonctionnalité de titre qui nécessite l'approbation de la plateforme. Collaborez avec votre gestionnaire Microsoft ou votre DPM pour activer cette fonctionnalité pour votre titre.

## Voir aussi

[Exigences XBOX](https://docs.xbox.com/fr/publishing/certification/xbox-requirements.md)

[XR-015 : Gestion des communications entre joueurs](https://docs.xbox.com/fr/publishing/certification/xr/xr-015.md)

[XR-018 : Contenu généré par l'utilisateur](https://docs.xbox.com/fr/publishing/certification/xr/xr-018.md)

[XR-045 : Réseau XBOX et privilèges de compte](https://docs.xbox.com/fr/publishing/certification/xr/xr-045.md)

[XUserCheckPrivilege](https://docs.xbox.com/fr/reference/system/xuser/functions/xusercheckprivilege.md)

[XUserPrivilege](https://docs.xbox.com/fr/reference/system/xuser/enums/xuserprivilege.md)

[XUserPrivilegeDenyReason](https://docs.xbox.com/fr/reference/system/xuser/enums/xuserprivilegedenyreason.md)

[XUserPrivilegeOptions](https://docs.xbox.com/fr/reference/system/xuser/enums/xuserprivilegeoptions.md)


## Related topics

- [Gestion côté serveur des privilèges utilisateur des services XBOX](https://docs.xbox.com/fr/services/xbox-services/fundamentals/identity/privileges/concepts/live-user-privileges-server.md)
- [Privilèges utilisateur des services XBOX](https://docs.xbox.com/fr/services/xbox-services/fundamentals/identity/privileges/concepts/live-privileges-concepts-nav.md)
- [Vue d'ensemble des utilisateurs invités](https://docs.xbox.com/fr/build/core-features/common/user/users-guest-overview.md)
- [Concepts](https://docs.xbox.com/fr/services/xbox-services/fundamentals/identity/privileges/concepts/index.md)
- [XR-045 Réseau XBOX et privilèges de compte](https://docs.xbox.com/fr/publishing/certification/xr/xr-045.md)
