Partager via


FONCTION DRMCreateClientSession (msdrm.h)

[Le Kit de développement logiciel (SDK) AD RMS tirant parti des fonctionnalités exposées par

le client dans Msdrm.dll est disponible dans Windows Server 2008, Windows Vista, Windows Server 2008 R2, Windows 7, Windows Server 2012 et Windows 8. Il peut être modifié ou

non disponible dans les versions suivantes. Utilisez plutôt active Directory Rights Management Services SDK 2.1.

qui tire parti des fonctionnalités exposées par le client dans Msipc.dll.]

La fonction DRMCreateClientSession crée une session cliente, qui héberge des sessions de stockage de licences et est utilisée dans l’activation et d’autres appels de fonction.

Syntaxe

DRMEXPORT HRESULT UDAPICALL DRMCreateClientSession(
  [in]           DRMCALLBACK pfnCallback,
  [in]           UINT        uCallbackVersion,
  [in]           PWSTR       wszGroupIDProviderType,
  [in, optional] PWSTR       wszGroupID,
  [out]          DRMHSESSION *phClient
);

Paramètres

[in] pfnCallback

Pointeur vers une fonction de rappel définie par l’application qui recevra des messages de fonction asynchrone status en réponse à d’autres fonctions AD RMS, telles que DRMActivate. Le format de cette fonction de rappel est défini dans Le prototype de rappel. Ce paramètre ne peut pas être NULL.

[in] uCallbackVersion

Spécifie la version de la fonction de rappel. Actuellement, seule la version zéro est prise en charge.

[in] wszGroupIDProviderType

Pointeur vers une chaîne Unicode terminée par null qui spécifie le type d’authentification du certificat de compte de droits soumis (RAC). Il peut s’agir de l’une des valeurs suivantes.

DRM_DEFAULTGROUPIDTYPE_WINDOWSAUTH

Utilisez l’authentification Windows. Spécifiez également cette valeur pour un rac Services ADFS (ADFS).

DRM_DEFAULTGROUPIDTYPE_PASSPORT

Utilisez l’authentification Passport.

[in, optional] wszGroupID

Pointeur vers une chaîne Unicode terminée par null qui contient une adresse e-mail pour l’utilisateur au format someone@example.com. En règle générale, cette valeur existe déjà dans Active Directory (AD) et est le même ID que celui fourni dans les informations d’identification d’ouverture de session. Si ce n’est pas le même, les appels ultérieurs à DRMIsActivated et DRMEnumerateLicense échoueront. Pour plus d'informations, consultez la section Notes.

Définissez ce paramètre sur NULL si vous envisagez uniquement d’utiliser le handle de session client créé par cette fonction pour récupérer un emplacement de service en appelant DRMGetServiceLocation.

[out] phClient

Pointeur vers une valeur DRMHSESSION qui reçoit le handle de session client. Lorsque vous avez terminé d’utiliser la session cliente, fermez-la en passant ce handle à la fonction DRMCloseSession .

Valeur retournée

Si la fonction réussit, la fonction retourne S_OK.

Si la fonction échoue, elle retourne une valeur HRESULT qui indique l’erreur. Les valeurs possibles incluent, sans s’y limiter, celles de la liste suivante. Pour obtenir la liste des codes d’erreur courants, consultez Valeurs HRESULT courantes.

Remarques

Si cette fonction réussit, le serveur AD RMS retourne un handle de session client qui est utilisé par DRMActivate pour créer un certificat de compte de droits (RAC) dans le magasin de licences pour la nouvelle session cliente. Le RAC est créé à l’aide des informations d’identification de l’utilisateur connecté. Si l’adresse e-mail spécifiée dans le paramètre wszGroupID ne correspond pas à celle spécifiée dans les informations d’identification, les fonctions telles que DRMIsActivated et DRMEnumerateLicense qui utilisent les informations associées à la session cliente pour rechercher le RAC dans le magasin de licences échouent.

Par exemple, supposons que l’utilisateur s’est connecté à l’aide de cat@example.com , mais que le paramètre wszGroupID est défini sur dog@example.com. Rac est créé pour cat@example.com. Toutefois, la fonction DRMEnumerateLicense recherche dans le magasin de licences un RAC qui contient dog@example.com et échoue.

Toutes les sessions de stockage de licences doivent être fermées avant de fermer la session cliente. Lorsque vous avez terminé d’utiliser la session cliente, fermez-la en passant le handle fourni par cette fonction à la fonction DRMCloseSession .

La fonction DRMCreateClientSession ne peut pas être appelée simultanément par différents processus s’exécutant en tant qu’utilisateurs différents sur le même ordinateur si un ou plusieurs de ces processus sont un processus de service. Un appel par un deuxième processus, par exemple, ne peut réussir qu’après la fermeture du handle de session client pour le premier processus.

Configuration requise

Condition requise Valeur
Plateforme cible Windows
En-tête msdrm.h
Bibliothèque Msdrm.lib
DLL Msdrm.dll

Voir aussi

Fonctions AD RMS

Création d’une fonction de rappel

DRMCloseSession