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 RequestFailedException
abfangen 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.
Azure SDK for .NET