Allgemeine Azure Communication-Clientbibliothek für .NET – Version 1.2.1

Dieses Paket enthält allgemeinen Code für Azure Communication Service-Bibliotheken.

Quellcode | Paket (NuGet) | Produktdokumentation

Erste Schritte

Installieren des Pakets

Installieren Sie die allgemeine Azure Communication-Clientbibliothek für .NET mit NuGet.

dotnet add package Azure.Communication.Common

Voraussetzungen

Sie benötigen ein Azure-Abonnement und eine Communication Service-Ressource , um dieses Paket verwenden zu können.

Um einen neuen Kommunikationsdienst zu erstellen, können Sie das Azure-Portal, die Azure PowerShell oder die .NET-Verwaltungsclientbibliothek verwenden.

Authentifizieren des Clients

Dieses Modul enthält keinen Client und stattdessen Bibliotheken, die anderen Azure Communication-Clients bei der Authentifizierung helfen.

Wichtige Begriffe

CommunicationTokenCredential

Das CommunicationTokenCredential -Objekt wird verwendet, um einen Benutzer mit Communication Services zu authentifizieren, z. B. Chat oder Anruf. Es bietet optional einen Mechanismus für die automatische Aktualisierung, um einen kontinuierlich stabilen Authentifizierungsstatus während der Kommunikation sicherzustellen.

Abhängig von Ihrem Szenario können Sie folgendes CommunicationTokenCredential initialisieren:

  • ein statisches Token (geeignet für kurzlebige Clients, die z.B. einmalige Chatnachrichten senden) oder
  • eine Rückruffunktion, die einen kontinuierlichen Authentifizierungsstatus sicherstellt (ideal z. B. für lange Anrufsitzungen).

Die Token, die entweder über den CommunicationTokenCredential Konstruktor oder über den Tokenaktualisierungsrückruf bereitgestellt werden, können mithilfe der Azure Communication Identity-Bibliothek abgerufen werden.

Threadsicherheit

Wir garantieren, dass alle Client-instance Methoden threadsicher und unabhängig voneinander sind (Richtlinie). Dadurch wird sichergestellt, dass die Empfehlung, Clientinstanzen wiederzuverwenden, immer sicher ist, auch threadsübergreifend.

Zusätzliche Konzepte

Clientoptionen | Zugreifen auf die Antwort | Vorgänge | mit langer AusführungsdauerBehandeln von Fehlern | Diagnose | Spott | Clientlebensdauer

Beispiele

Erstellen von Anmeldeinformationen mit einem statischen Token

Bei kurzlebigen Clients ist das Aktualisieren des Tokens nach Ablauf nicht erforderlich und CommunicationTokenCredential kann mit einem statischen Token instanziiert werden.

string token = Environment.GetEnvironmentVariable("COMMUNICATION_SERVICES_USER_TOKEN");
using var tokenCredential = new CommunicationTokenCredential(token);

Erstellen von Anmeldeinformationen mit einem Rückruf

Alternativ können Sie für langlebige Clients einen CommunicationTokenCredential mit einem Rückruf erstellen, um Token zu verlängern, wenn sie abgelaufen sind. Hier übergeben wir zwei vorgestellte Funktionen, die Netzwerkanforderungen stellen, um Tokenzeichenfolgen für Benutzer Bob abzurufen. Wenn Rückrufe bei Anforderungen (senden einer Chatnachricht) CommunicationTokenCredential übergeben werden, stellen Sie sicher, dass vor der Ausführung der Anforderung ein gültiges Token abgerufen wird. Es ist erforderlich, dass die FetchTokenForUserFromMyServer Methode jederzeit ein gültiges Token (mit einem in der Zukunft festgelegten Ablaufdatum) zurückgibt.

Optional können Sie eine proaktive Tokenaktualisierung aktivieren, bei der ein neues Token abgerufen wird, sobald das vorherige Token abläuft. Bei Verwendung dieser Methode ist es weniger wahrscheinlich, dass Ihre Anforderungen blockiert werden, um ein neues Token abzurufen:

using var tokenCredential = new CommunicationTokenCredential(
    new CommunicationTokenRefreshOptions(
        refreshProactively: true, // Indicates if the token should be proactively refreshed in the background or only on-demand
        tokenRefresher: cancellationToken => FetchTokenForUserFromMyServer("bob@contoso.com", cancellationToken))
    {
        AsyncTokenRefresher = cancellationToken => FetchTokenForUserFromMyServerAsync("bob@contoso.com", cancellationToken)
    });

Wenn Sie bereits über ein Token verfügen, können Sie die Tokenaktualisierung noch weiter optimieren, indem Sie das anfängliche Token übergeben:

string initialToken = Environment.GetEnvironmentVariable("COMMUNICATION_SERVICES_USER_TOKEN");
using var tokenCredential = new CommunicationTokenCredential(
    new CommunicationTokenRefreshOptions(
       refreshProactively: true, // Indicates if the token should be proactively refreshed in the background or only on-demand
       tokenRefresher: cancellationToken => FetchTokenForUserFromMyServer("bob@contoso.com", cancellationToken))
    {
        AsyncTokenRefresher = cancellationToken => FetchTokenForUserFromMyServerAsync("bob@contoso.com", cancellationToken),
        InitialToken = initialToken
    });

Problembehandlung

Die proaktiven Aktualisierungsfehler treten in einem Hintergrundthread auf, und um einen Absturz Ihrer App zu vermeiden, werden die Ausnahmen unbeaufsichtigt behandelt. Alle anderen Fehler treten während der Anforderung auf, indem Sie andere Clients verwenden, z. B. Chat, wo Sie die Ausnahme mithilfe von RequestFailedExceptionabfangen können.

Nächste Schritte

Weitere Informationen zu Kommunikationsbenutzerzugriffstoken

Mitwirken

Beiträge und Vorschläge für dieses Projekt sind willkommen. Most contributions require you to agree to a Contributor License Agreement (CLA) declaring that you have the right to, and actually do, grant us the rights to use your contribution. Weitere Informationen finden Sie unter cla.microsoft.com.

Für dieses Projekt gelten die Microsoft-Verhaltensregeln für Open Source (Microsoft Open Source Code of Conduct). Weitere Informationen finden Sie in den häufig gestellten Fragen zum Verhaltenskodex. Sie können sich auch an opencode@microsoft.com wenden, wenn Sie weitere Fragen oder Anmerkungen haben.