OAuthPrompt Klasse

Definition

Erstellt eine neue Eingabeaufforderung, die den Benutzer auffordert, sich mit dem Bot Frameworks Single Sign On (SSO)-Dienst anzumelden.

public class OAuthPrompt : Microsoft.Bot.Builder.Dialogs.Dialog
type OAuthPrompt = class
    inherit Dialog
Public Class OAuthPrompt
Inherits Dialog
Vererbung
OAuthPrompt

Hinweise

Die Eingabeaufforderung versucht, das aktuelle Token des Nutzers abzurufen, und wenn der Nutzer nicht angemeldet ist, sendet sie ihm eine 'OAuthCard' mit einem Button, den sie drücken können, um sich anzumelden. Je nach Kanal wird der Benutzer über einen von zwei möglichen Anmeldeflüssen gesendet:

- Der automatische Anmeldefluss, bei dem der Benutzer, sobald der Benutzer sich anmeldet und der SSO-Dienst den Bot weiterleitet, der Benutzerzugriffstoken entweder über eine 'Ereignis'- oder 'Aufruf'-Aktivität weiterleitet. - Der "Magic Code"-Fluss, bei dem der Nutzer nach der Anmeldung vom SSO-Dienst aufgefordert wird, dem Bot einen sechsstelligen Code zur Bestätigung seiner Identität zu senden. Dieser Code wird als Standard-'Nachrichten'-Aktivität gesendet.

Beide Flows werden automatisch vom 'OAuthPrompt' unterstützt, und das Einzige, worauf du achten musst, ist, dass du die 'Event'- und 'Aufruf'-Aktivitäten, auf die der Prompt wartet, nicht blockierst.

**Hinweis**: Du solltest vermeiden, den Zugriffstoken mit dem anderen Zustand deines Bots zu erhalten. Der Bot Frameworks-SSO-Dienst speichert das Token sicher in Ihrem Auftrag. Wenn Sie sie in Ihrem Bots speichern, kann sie ablaufen oder zwischeneinander widerrufen werden.

Wenn Sie die Eingabeaufforderung innerhalb eines Wasserfallschritts aufrufen, sollten Sie das Token innerhalb des Schritts verwenden, der auf die Eingabeaufforderung folgt, und lassen Sie das Token dann am Ende der Funktion außer Reichweite gehen.

### Prompt-Nutzung

Wenn du es mit deinen Bots nutzt, DialogSet kannst du einfach eine neue Instanz des Prompts als benannten Dialog hinzufügen, mit Add(Dialog). Anschließend können Sie die Eingabeaufforderung aus einem Wasserfallschritt mit BeginDialogAsync(String, Object, CancellationToken) oder PromptAsync(String, PromptOptions, CancellationToken)starten. Der Benutzer wird aufgefordert sich bei Bedarf anzumelden, und sein Zugriffstoken wird als Argument an den nächsten Wasserfallschritt des Aufrufers weitergegeben.

Konstruktoren

Name Beschreibung
OAuthPrompt(String, OAuthPromptSettings, PromptValidator<TokenResponse>)

Initialisiert eine neue Instanz der OAuthPrompt-Klasse.

Eigenschaften

Name Beschreibung
Id

Erhält oder setzt eine ID für den Dialog.

(Geerbt von Dialog)
Source

Erhält die Information des Cref="SourceRange"/>.

(Geerbt von Dialog)
TelemetryClient

Es bekommt oder setzt die Nutzung IBotTelemetryClient , um sie für das Protokollieren zu verwenden.

(Geerbt von Dialog)

Methoden

Name Beschreibung
BeginDialogAsync(DialogContext, Object, CancellationToken)

Wird aufgerufen, wenn ein Eingabeaufforderungsdialogfeld auf den Dialogstapel verschoben wird und aktiviert wird.

ContinueDialogAsync(DialogContext, CancellationToken)

Wird aufgerufen, wenn ein Eingabeaufforderungsdialogfeld das aktive Dialogfeld ist und der Benutzer mit einer neuen Aktivität geantwortet hat.

EndDialogAsync(ITurnContext, DialogInstance, DialogReason, CancellationToken)

Wird aufgerufen, wenn das Dialogfeld beendet wird.

(Geerbt von Dialog)
GetUserTokenAsync(ITurnContext, CancellationToken)

Versucht, das Token des Benutzers abzurufen.

GetVersion()

Erhält eine eindeutige Zeichenkette, die die Version dieses Dialogs darstellt. Wenn sich die Version ändert, gibt das Dialogfeldsystem ein DialogChanged-Ereignis aus.

(Geerbt von Dialog)
OnComputeId()

Erstellt die Compute-ID für den Dialog.

(Geerbt von Dialog)
OnDialogEventAsync(DialogContext, DialogEvent, CancellationToken)

Wird aufgerufen, wenn ein Ereignis mit DialogContext.emitEvent()ausgelöst wurde, entweder durch das aktuelle Dialogfeld oder ein Dialogfeld, das das aktuelle Dialogfeld gestartet hat.

(Geerbt von Dialog)
OnPostBubbleEventAsync(DialogContext, DialogEvent, CancellationToken)

Wird aufgerufen, nachdem ein Ereignis für alle übergeordneten Eltern eingeblasen wurde und nicht behandelt wurde.

(Geerbt von Dialog)
OnPreBubbleEventAsync(DialogContext, DialogEvent, CancellationToken)

Wird aufgerufen, bevor ein Ereignis in das übergeordnete Element eingeblasen wird.

(Geerbt von Dialog)
RecognizeTokenAsync(OAuthPromptSettings, DialogContext, CancellationToken)

Gemeinsame Implementierung der RecognizeTokenAsync-Funktion. Dies ist für die interne Verwendung vorgesehen, um die Implementierung von OAuthPrompt und OAuthInput zu konsolidieren. Anwendungslogik sollte diese Dialogfeldklassen verwenden.

RegisterSourceLocation(String, Int32)

Registriert ein Cref="SourceRange"/> an der angegebenen Stelle.

(Geerbt von Dialog)
RepromptDialogAsync(ITurnContext, DialogInstance, CancellationToken)

Wird aufgerufen, wenn das Dialogfeld den Benutzer zur Eingabe erneut auffordert.

(Geerbt von Dialog)
ResumeDialogAsync(DialogContext, DialogReason, Object, CancellationToken)

Wird aufgerufen, wenn ein untergeordnetes Dialogfeld diesen Vorgang abgeschlossen hat, und gibt das Steuerelement zu diesem Dialogfeld zurück.

(Geerbt von Dialog)
SendOAuthCardAsync(OAuthPromptSettings, ITurnContext, IMessageActivity, CancellationToken)

Gemeinsame Implementierung der Funktion SendOAuthCardAsync. Dies ist für die interne Verwendung vorgesehen, um die Implementierung von OAuthPrompt und OAuthInput zu konsolidieren. Anwendungslogik sollte diese Dialogfeldklassen verwenden.

SetCallerInfoInDialogState(IDictionary<String,Object>, ITurnContext)

Gemeinsame Implementierung der SetCallerInfoInDialogState-Funktion. Dies ist für die interne Verwendung vorgesehen, um die Implementierung von OAuthPrompt und OAuthInput zu konsolidieren. Anwendungslogik sollte diese Dialogfeldklassen verwenden.

SignOutUserAsync(ITurnContext, CancellationToken)

Meldet den Benutzer ab.

Erweiterungsmethoden

Name Beschreibung
RunAsync(Dialog, ITurnContext, IStatePropertyAccessor<DialogState>, CancellationToken)

Erstellt einen Dialogstapel und startet ein Dialogfeld, indem es auf den Stapel verschoben wird.

Gilt für: