Snipping Tool starten

In diesem Artikel wird das Protokoll für die Integration von Erst- und Drittanbieteranwendungen in das Windows Snipping Tool mithilfe des Schemas ms-screenclip: URI (Uniform Resource Identifier) angegeben. Das Protokoll unterstützt die Aufnahme von Bildern und Videos (mit Audio) über das Snipping Tool, und App-Aufrufer können auswählen, welche Snipping Tool-Features ihre App anzeigt.

Important

Dieses Protokoll erfordert eine packaged Windows App (MSIX). Wenn Ihre App verpackt ist, stellt das Betriebssystem die Identität Ihrer App automatisch dem Snipping Tool bereit, das es verwendet, um die Aufnahmeantwort sicher an Ihre App weiterzuleiten. Nicht verpackte (Win32)-Aufrufer können keine Antworten über redirect-uri erhalten. Wenn eine entpackte App eine redirect-uri Komponente bereitstellt, liefert das Snipping Tool die Antwort nicht und kann möglicherweise beendet werden, ohne die Aufnahme-UI anzuzeigen.

Note

Dieses Protokoll ersetzt die im Startbildschirm-Ausschnitt (veraltet) dokumentierte Erfahrung, die jetzt veraltet ist.

Unterstützte Funktionen

Das Snipping Tool-Protokoll unterstützt die folgenden Features:

  • Rechteckaufnahme
  • Freiform-Erfassung
  • Fenstererfassung
  • Bildschirmaufzeichnung
  • Anpassen der verfügbaren Aufnahmemodi
  • Automatisches Speichern (optional)

Protokollspezifikation

URI-Format:ms-screenclip://{host}/{path}?{query parameters}

Bestandteil Description Werte
Scheme Das benutzerdefinierte Schema für das Snipping Tool ms-screenclip
Host Der auszuführende Snipping Tool-Vorgang capture oder discover
Pfad Der zu erfassende Medientyp (gilt nur für den capture Host; der discover Host hat keinen Pfad) /image oder /video
Abfrage Parameter für den Vorgang Siehe Tabellen unten

Note

Pfade und Abfrageparameternamen sind nicht case-sensitiv. Verhält sich z. B. ms-screenclip://capture/Image?Redirect-Uri=my-app://response wie ms-screenclip://capture/image?redirect-uri=my-app://response.

Aufnahmehost

Verwenden Sie den capture Host, um die Aufnahmeüberlagerung des Snipping Tools zu starten.

Pfad

Pfad Description
/image Startet die Bildaufnahme (Screenshot). Erfordert einen Modusparameter.
/video Startet die Videoaufnahme (Bildschirmaufzeichnung). Verwendet immer den Rechteckmodus.

Modusparameter (Aufnahme/Bild)

Für den /image Pfad müssen Sie genau einen Modusparameter angeben. Modusparameter sind bare Abfrageparameter ohne Wert.

Parameter Description
rectangle Interaktiver Aufnahmemodus für Rechtecke.
freeform Interaktiver Freihand-Aufnahmemodus.
window Interaktiver Fensteraufnahmemodus.

Important

Modusparameter müssen ohne Einen Wert angegeben werden. Verwenden Sie z. B. &rectangle, nicht&rectangle=value. Die Angabe eines Werts führt zu einer Fehlerantwort.

Für /image" müssen Sie genau einen Modusparameter angeben. Das Angeben von Null oder mehr als einem Modus führt zu einer 400 Bad Request Fehlerantwort. Für /video, wird jeder Modusparameter ignoriert.

Abfrageparameter (Erfassung)

Note

Abfrageparameter können in beliebiger Reihenfolge bereitgestellt werden.

Parameter Typ Erforderlich Description Vorgabe
redirect-uri URI Yes Callback-URI, an die das Snipping Tool die Aufnahmeantwort sendet. Ihre App muss einen Protokollhandler für dieses URI-Schema registrieren. Wenn sie weggelassen wird, zeigt das Snipping Tool die Aufnahme-UI nicht an und gibt keine Antwort zurück. n/a
user-agent Schnur Nein (dringend empfohlen) Bezeichner für die aufrufende Anwendung, die für die Protokollierung und Analyse verwendet wird. Zur Diagnose von Problemen über Supportkanäle erforderlich; das Auslassen erfolgt auf eigenes Risiko. n/a
api-version Schnur No Zu verwendende Protokollversion, z. B "1.2". . Wenn sie weggelassen wird, wird die Anforderung als Version 1.2verarbeitet. 1.2
x-request-correlation-id Schnur No Eindeutiger Bezeichner für die Anforderung, der den Verweis auf eine bestimmte Transaktion oder Ereigniskette zulässt. Automatisch generierte GUID
enabledModes Zeichenfolge (Liste) No Steuert die in der Benutzeroberfläche verfügbaren Aufnahmemodi. Siehe "EnabledModes " weiter unten. Nur der im URI angegebene Modus
auto-save Flagge No Bei der Präsentation wird der aufgenommene Screenshot oder die Aufzeichnung automatisch auf dem Gerät des Benutzers gespeichert. Nicht vorhanden (kein automatisches Speichern)

Note

Der Standardwert von api-version bei 1.2 ändert sich nicht, wenn neuere Protokollversionen veröffentlicht werden. Anforderungen, die api-version nicht enthalten, werden immer als 1.2 verarbeitet. Um Funktionen zu nutzen, die in einer späteren Version hinzugefügt wurden, setzen Sie api-version auf diese Version. Es wird empfohlen, in jeder Anforderung explizit anzugeben api-version , damit Ihre App nicht mit der impliziten Standardeinstellung, sondern mit einer bekannten Protokollversion verknüpft bleibt.

Note

Wenn Sie angeben api-version, muss sie genau mit einem der Werte im Array der /discover Antwort supportedVersions übereinstimmen (derzeit 1.0, 1.1und 1.2). Alle anderen Werte, einschließlich Zwischenwerte wie 1.15 oder falsch formatierte Werte wie 1.0abc, führen zu einer 400 Bad Request-Antwort. Rufen Sie den Discover-Host auf, um die Versionsreihe zu ermitteln, die von einem bestimmten Snipping Tool-Build akzeptiert wird.

Note

Das auto-save Kennzeichen respektiert die Snipping Tool-Einstellungen des Benutzers. Wenn der Benutzer das automatische Speichern im Snipping Tool deaktiviert hat, wird die Erfassung nicht auf dem Gerät gespeichert, auch wenn Ihre Anforderung enthält auto-save.

Host entdecken

Verwenden Sie den discover Host, um die unterstützten Funktionen, Modi und Protokollversion des Snipping Tools zur Laufzeit abzufragen. Dies ist nützlich, um die Kompatibilität zu überprüfen, bevor Sie eine Aufnahmeanforderung vornehmen.

Abfrageparameter (Entdecken)

Parameter Typ Erforderlich Description Vorgabe
redirect-uri URI Yes Rückruf-URI, bei dem das Snipping Tool die Antwort zu den Funktionalitäten sendet. Ihre App muss einen Protokollhandler für dieses URI-Schema registrieren. Wenn nicht angegeben, gibt das Snipping Tool keine Antwort zurück. n/a
user-agent Schnur Nein (dringend empfohlen) Bezeichner für die aufrufende Anwendung, die für die Protokollierung und Analyse verwendet wird. n/a
x-request-correlation-id Schnur No Eindeutiger Bezeichner für die Anforderung. Automatisch generierte GUID

Entdecken Sie Beispiel

ms-screenclip://discover?user-agent=MyApp&redirect-uri=my-app://response

Antwortformat entdecken

Die Antwort ist ein JSON-Objekt, das als Abfrageparameter an den Umleitungs-URI discover angefügt wird. Sie enthält folgende Elemente:

  • version: Neueste Protokollversion, die dieser Snipping-Tool-Build unterstützt.
  • defaultVersion: Protokollversion wird angenommen, wenn eine Anforderung api-version auslässt. Lesen Sie dies, um zu verstehen, wie Ihre losgelösten Anforderungen interpretiert werden.
  • supportedVersions: Array von Protokollversionen, die von diesem Snipping-Tool akzeptiert werden.
  • capabilities: Array der unterstützten Erfassungsvorgänge, jeweils mit:
    • path: Der Aufnahmeendpunkt (z. B. capture/image, capture/video).
    • methods: Unterstützte HTTP-ähnliche Methoden.
    • parameters: Verfügbare Parameter für den Endpunkt.
    • description: Beschreibung der Funktion.
{
  "version": 1.2,
  "defaultVersion": 1.2,
  "supportedVersions": [1.0, 1.1, 1.2],
  "capabilities": [
    {
      "path": "capture/image",
      "methods": ["GET"],
      "parameters": ["rectangle", "freeform", "window"],
      "description": "Captures an image with options for shape."
    },
    {
      "path": "capture/video",
      "methods": ["GET"],
      "parameters": [],
      "description": "Captures a video in a defined area."
    }
  ]
}

Aktivierte Modi

Mit dem enabledModes Parameter können Sie steuern, welche Aufnahmemodi in der Benutzeroberfläche des Snipping-Tools verfügbar sind. Verwenden Sie sie, um die Auswahlmöglichkeiten des Benutzers einzuschränken oder zu erweitern, um den Anforderungen Ihrer Anwendung zu entsprechen.

Unterstützte Modi

Modus Description
RectangleSnip Rechteck-Aufnahmemodus.
WindowSnip Fensteraufnahmemodus.
FreeformSnip Freiform-Aufnahmemodus
FullscreenSnip Vollbild-Aufnahmemodus.
SnippingAllModes Alle Bildaufnahmemodi: RectangleSnip, WindowSnip, FreeformSnip, . FullscreenSnip
RectangleRecord Aufzeichnungsmodus für Rechtecke.
RecordAllModes Alle Aufzeichnungsmodi: derzeit RectangleRecord nur.
All Alle unterstützten Modi: die Vereinigung von SnippingAllModes und RecordAllModes.

Tip

All, SnippingAllModesund RecordAllModes sind Aggregatwerte. Die darin enthaltenen Modi können sich in allen Snipping Tool-Versionen ändern. Eine App, die einen dieser Werte verwendet, verwendet automatisch Modi, die in zukünftigen Versionen hinzugefügt werden. Um den Satz verfügbarer Modi über Updates hinweg beizubehalten, listen Sie die spezifischen Modi explizit auf (z. B RectangleSnip,FreeformSnip. ).

Important

  • Für /image ist ein Modusparameter (z. B. rectangle, freeform, window) im URI erforderlich, auch wenn enabledModes angegeben ist. Der Modusparameter bestimmt den anfänglich ausgewählten Modus.
  • Der im URI angegebene Modus ist immer in der Benutzeroberfläche verfügbar, auch wenn er in enabledModes nicht aufgeführt ist. Bietet ?freeform&enabledModes=RectangleSnip sowohl Freihandschnitt (vom URI) als auch Rechteck-Snip an, wobei der Freihandschnitt bereits vorausgewählt ist.
  • Wenn enabledModes weggelassen wird, steht nur der im URI angegebene Modus in der Benutzeroberfläche zur Verfügung.
  • Bei /image, wenn kein Modus angegeben wird, ist die Anforderung ungültig und führt unabhängig von enabledModes zu einem Fehler.

EnabledModes-Beispiele

Nur Rechteck-Ausschnitt aktivieren:

ms-screenclip://capture/image?rectangle&enabledModes=RectangleSnip&user-agent=MyApp&redirect-uri=my-app://response

Aktivieren Sie Rechteck- und Fensterausschneiden:

ms-screenclip://capture/image?rectangle&enabledModes=RectangleSnip,WindowSnip&user-agent=MyApp&redirect-uri=my-app://response

Aktivieren Sie alle Snipping-Modi:

ms-screenclip://capture/image?rectangle&enabledModes=SnippingAllModes&user-agent=MyApp&redirect-uri=my-app://response

Nur Aufzeichnungsmodus aktivieren:

ms-screenclip://capture/video?enabledModes=RecordAllModes&user-agent=MyApp&redirect-uri=my-app://response

Aktivieren sie mehrere Snipping- und Aufzeichnungsmodi:

ms-screenclip://capture/image?freeform&enabledModes=RectangleSnip,RectangleRecord&user-agent=MyApp&redirect-uri=my-app://response

Da die Freihandform im URI angegeben ist, wird sie automatisch vorausgewählt. Benutzer können zwischen Freihandform, Rechteckschnappschuss und Rechteckaufnahme wechseln.

Antworten

Nachdem der Benutzer einen Ausschnitt erstellt oder abgebrochen hat, sendet das Snipping Tool eine Antwort über die redirect-uri an Ihre Anwendung. Die Antwort ist als URI-Abfrageparameter strukturiert, die an den Umleitungs-URI angefügt werden.

Wenn Ihre redirect-uri bereits Abfrageparameter enthalten (z. B. my-app://response?sessionId=abc), werden diese Parameter beibehalten, und die Antwortparameter werden mit & angefügt. Sie können dies verwenden, um den anruferspezifischen Zustand über den Rückruf abzurunden – der Wert sessionId=abc wird zusammen mit code, reason, , x-request-correlation-idund (für eine erfolgreiche Aufnahme) file-access-tokenin den Antwort-URI zurückgerufen.

Antwortparameter

Parameter Typ Anzahl Description
code int Immer STATUScode im HTTP-Stil, der das Ergebnis angibt.
reason Schnur Immer Menschenlesbare Beschreibung des Ergebnisses.
x-request-correlation-id Schnur Immer Die Korrelations-ID aus der ursprünglichen Anforderung (oder eine automatisch generierte).
file-access-token Schnur Nur Erfolg Ein SharedStorageAccessManager Token, das die erfassten Medien darstellt. Verwenden Sie diese, um die Datei abzurufen.
discover Schnur Nur entdecken URL-codierter JSON-Code, der die Antwort auf die Funktionen enthält.

Statuscodes

Code Grund Description
200 Success Die Erfassung wurde erfolgreich abgeschlossen. Ein file-access-token ist in der Antwort enthalten.
400 Ungültige Anforderung – Ungültige oder fehlende Parameter Die Anforderung konnte nicht verarbeitet werden. Überprüfen Sie, ob alle erforderlichen Parameter vorhanden und gültig sind.
408 Anforderungstimeout – Vorgang dauerte zu lange Die Ausführung des Vorgangs wurde wegen Zeitüberschreitung vor Abschluss abgebrochen.
499 Anfrage von Client geschlossen - Benutzer hat das Snippet abgebrochen Der Benutzer hat die Aufzeichnung abgebrochen, indem er die Escape-Taste drückt oder wegklickt. Gilt nur für /image und /video.
500 Interner Serverfehler – Fehler bei der Verarbeitung Unerwarteter Fehler während der Erfassung.

Beispielantworten

Erfolgreiche Erfassung:

my-app://response?code=200&reason=Success&x-request-correlation-id=aaaa0000-bb11-2222-33cc-444444dddddd&file-access-token=cccc2222-dd33-4444-55ee-666666ffffff

Benutzerabbruch:

my-app://response?code=499&reason=Client%20Closed%20Request%20-%20User%20Cancelled%20the%20Snip&x-request-correlation-id=bbbb1111-cc22-3333-44dd-555555eeeeee

Ungültige Anforderung (fehlender Modusparameter):

my-app://response?code=400&reason=Bad%20Request%20-%20Invalid%20or%20Missing%20Parameters&x-request-correlation-id=bbbb1111-cc22-3333-44dd-555555eeeeee

Vollständige URI-Beispiele

Anwendungsfall URI Description
Rechteckiger Screenshot ms-screenclip://capture/image?rectangle&user-agent=MyApp&redirect-uri=my-app://response Interaktive Rechteckaufnahme. Resultat wird an den Aufrufer zurückgegeben.
Freiform-Bildschirmfoto ms-screenclip://capture/image?freeform&user-agent=MyApp&redirect-uri=my-app://response Interaktive Freiformerfassung. Ergebnis wurde an den Aufrufer zurückgegeben.
Screenshot des Fensters ms-screenclip://capture/image?window&user-agent=MyApp&redirect-uri=my-app://response Interaktive Fenstererfassung. Ergebnis an den Aufrufer zurückgegeben.
Bildschirmaufzeichnung ms-screenclip://capture/video?user-agent=MyApp&redirect-uri=my-app://response Interaktive Bildschirmaufzeichnung. Ergebnis wird an den Aufrufer zurückgegeben.
Entdecken von Funktionen ms-screenclip://discover?user-agent=MyApp&redirect-uri=my-app://response Abfrage unterstützter Features. Der JSON-Code der Funktionen, der an den Aufrufer zurückgegeben wird.
Rechteck mit automatischer Speicherung ms-screenclip://capture/image?rectangle&auto-save&user-agent=MyApp&redirect-uri=my-app://response Rechteckaufnahme mit aktivierter automatischer Speicherung.
Rechteck mit allen Modi ms-screenclip://capture/image?rectangle&enabledModes=All&user-agent=MyApp&redirect-uri=my-app://response Die Rechteckaufnahme ist vorgewählt, alle Modi sind in der Benutzeroberfläche verfügbar.

Starten von Ihrer App

Sie müssen Launcher.LaunchUriAsync verwenden, um das Snipping Tool aus Ihrer verpackten App zu starten. Andere Startmethoden (wie Process.Start oder Shellausführung) verleihen Ihrer App keine Identität, und das Snipping Tool übermittelt die Antwort nicht.

Schritt 1: Registrieren eines Protokollhandlers

Registrieren Sie ein benutzerdefiniertes Protokoll in Ihrer Package.appxmanifest App, damit Ihre App die Rückrufantwort empfangen kann. Der Protokollname muss mit dem in Ihrer redirect-uriDatei verwendeten Schema übereinstimmen.

<Extensions>
  <uap:Extension Category="windows.protocol">
    <uap:Protocol Name="my-app" DesiredView="default">
      <uap:DisplayName>My App Protocol</uap:DisplayName>
    </uap:Protocol>
  </uap:Extension>
</Extensions>

Weitere Informationen zum Registrieren und Behandeln von Protokollaktivierungen finden Sie unter Behandeln der URI-Aktivierung .

Schritt 2: Starten des Snipping-Tools

// Capture a screenshot in rectangle mode
var uri = new Uri(
    "ms-screenclip://capture/image"
    + "?rectangle"
    + "&user-agent=MyApp"
    + "&redirect-uri=my-app://capture-response"
    + "&x-request-correlation-id=" + Guid.NewGuid().ToString()
);
await Launcher.LaunchUriAsync(uri);
// Record a video
var uri = new Uri(
    "ms-screenclip://capture/video"
    + "?user-agent=MyApp"
    + "&redirect-uri=my-app://capture-response"
);
await Launcher.LaunchUriAsync(uri);
// Discover capabilities (returns immediately, no capture UI)
var uri = new Uri(
    "ms-screenclip://discover"
    + "?user-agent=MyApp"
    + "&redirect-uri=my-app://discover-response"
);
await Launcher.LaunchUriAsync(uri);

Schritt 3: Verarbeiten der Antwort

Wenn die Erfassung abgeschlossen ist (oder der Benutzer abbricht), aktiviert das Snipping Tool Ihre App über redirect-uri, indem Ergebnisparameter als Abfragezeichenfolgen angefügt werden. Die meisten Integrationen laufen bereits, wenn die Antwort eingeht – das Snipping Tool wurde aufgerufen und hat dann auf den Callback gewartet –, sodass Ihre App sowohl die Kaltstartaktivierung (die App war nicht ausgeführt) als auch die warme Reaktivierung (die App läuft bereits) verarbeiten muss. Abonnieren Sie beide Pfade in App.xaml.cs.

Behandeln einer Aufnahmeantwort (Bild oder Video):

// In App.xaml.cs: handle protocol activation for both cold-start and warm re-activation
protected override void OnLaunched(Microsoft.UI.Xaml.LaunchActivatedEventArgs args)
{
    // Cold-start path: the app was launched by Snipping Tool's callback.
    var activatedArgs = Microsoft.Windows.AppLifecycle.AppInstance.GetCurrent().GetActivatedEventArgs();
    if (activatedArgs.Kind == Microsoft.Windows.AppLifecycle.ExtendedActivationKind.Protocol)
    {
        if (activatedArgs.Data is Windows.ApplicationModel.Activation.IProtocolActivatedEventArgs protocolArgs)
        {
            _ = HandleProtocolActivationAsync(protocolArgs.Uri);
        }
    }

    // Warm re-activation path: the app is already running when the callback arrives.
    Microsoft.Windows.AppLifecycle.AppInstance.GetCurrent().Activated += (sender, e) =>
    {
        if (e.Kind == Microsoft.Windows.AppLifecycle.ExtendedActivationKind.Protocol &&
            e.Data is Windows.ApplicationModel.Activation.IProtocolActivatedEventArgs protocolArgs)
        {
            _ = HandleProtocolActivationAsync(protocolArgs.Uri);
        }
    };
}

private async Task HandleProtocolActivationAsync(Uri uri)
{
    var query = new WwwFormUrlDecoder(uri.Query);

    var code = query.GetFirstValueByName("code");
    var reason = query.GetFirstValueByName("reason");

    if (code == "200")
    {
        var token = query.GetFirstValueByName("file-access-token");
        var file = await SharedStorageAccessManager.RedeemTokenForFileAsync(token);

        // Use the captured file (see "Retrieving captured media" below)
    }
    else
    {
        // Handle error (400, 408, 499, 500)
        Debug.WriteLine($"Snipping Tool returned {code}: {reason}");
    }
}

Verarbeiten einer Entdeckungsantwort:

private void HandleDiscoverResponse(Uri uri)
{
    var query = new WwwFormUrlDecoder(uri.Query);

    var code = query.GetFirstValueByName("code");

    if (code == "200")
    {
        var discover = query.GetFirstValueByName("discover");
        // discover contains a URL-encoded JSON capabilities payload
        var capabilities = Uri.UnescapeDataString(discover);
        // Parse the JSON to inspect supported capture modes
    }
}

Tip

Wenn Sie eine x-request-correlation-id Nachricht mit der Anforderung gesendet haben, überprüfen Sie, ob die Antwort denselben Wert angibt, damit Sie mit der Antwort auf die richtige In-Flight-Anforderung übereinstimmen können. Wenn Sie das Snipping Tool automatisch generieren lassen, trägt die Antwort den generierten Wert – behandeln Sie ihn als übereinstimmende In-Flight-Anforderung.

Abrufen erfasster Medien mithilfe des Tokens

Verwenden Sie die SharedStorageAccessManager-Klasse , um die file-access-token erfasste Datei einzulösen und darauf zuzugreifen.

Tokeneinschränkungen:

  • Ein Token kann nur einmal eingelöst werden. Nach der Einlösung ist sie nicht mehr gültig.
  • Ein Token läuft nach 14 Tagen ab.
  • Eine App darf nicht über mehr als 1000 aktive Token verfügen. Nachdem ein Token eingelöst, entfernt oder abläuft, zählt es nicht mehr für das Kontingent.
// Redeem the token and display the captured image
var file = await SharedStorageAccessManager.RedeemTokenForFileAsync(token);

using (var stream = await file.OpenReadAsync())
{
    var bitmap = new BitmapImage();
    await bitmap.SetSourceAsync(stream);
    MyImage.Source = bitmap;
}

// Or copy to your app's local storage
var localFolder = ApplicationData.Current.LocalFolder;
await file.CopyAsync(localFolder, file.Name, NameCollisionOption.GenerateUniqueName);

Sicherheitsaspekte

Das Snipping Tool überprüft alle redirect-uri Werte, bevor sie gestartet werden. Die folgenden Schutzmaßnahmen werden erzwungen:

  • Packaged-App-Aufrufer: Wenn Ihre App eine verpackte Windows App (MSIX) ist, leitet das Betriebssystem die Aufnahmeantwort sicher an Ihre App weiter und stellt sicher, dass ihre App sie empfangen kann. Dies ist der empfohlene Integrationspfad.
  • Eingabeüberprüfung: Das Snipping Tool lehnt Umleitungs-URIs ab, die UNC-Pfade, führende/nachfolgende Leerzeichen oder Steuerzeichen enthalten.
  • Keine Fragmente: Umleitungs-URIs, die ein URL-Fragment enthalten (z. B my-app://response#section. ) werden abgelehnt. Das Snipping Tool fügt die Antwortparameter als Abfragezeichenfolge an, und ein Fragment verschluckt sie.
  • Selbstverweisender Schutz: Umleitungs-URIs, die eine rekursive Aktivierung des Snipping-Tools verursachen würden, werden blockiert.

Important

Für Anrufanwendungen:

  • Registrieren Sie einen Protokollhandler für Ihr Umleitungs-URI-Schema, damit Ihre App die Antwort empfangen kann.
  • Überprüfen und sanitieren Sie alle parameter, die in der Antwort empfangen wurden, bevor Sie sie verarbeiten.
  • Stellen Sie sicher, dass die Antwort x-request-correlation-id Ihrer In-Flight-Anforderung entspricht, um die Behandlung einer veralteten Antwort oder das Mischen gleichzeitiger Anforderungen zu vermeiden. Korrelationskennung verhindert Vermischungen; Sie stellt keine Token-Provenienz fest – sicheres Tokenrouting stammt aus dem Rückrufkanal in der verpackten Anwendung.