共用方式為


OAuthPrompt 類別

定義

建立新的提示,要求使用者使用 Bot Frameworks 單一登入 (SSO) 服務登入。

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

備註

提示會嘗試擷取使用者目前的權杖,如果使用者未登入,則會傳送 'OAuthCard',其中包含他們按下以登入的按鈕。 視通道而定,使用者將會透過兩個可能登入流程的其中一個傳送:

- 自動登入流程,一旦使用者登入,SSO 服務就會使用「事件」或「叫用」活動,將使用者存取權杖轉送給 Bot。 - 「magic code」 流程,當使用者登入時,SSO 服務會提示他們傳送六位數代碼來確認其身分識別的 Bot。 此程式碼會以標準 'message' 活動的形式傳送。

'OAuthPrompt' 會自動支援這兩個流程,唯一需要注意的是,您不會封鎖提示可能等候的 'event' 和 'invoke' 活動。

**注意**:您應該避免使用 Bot 的其他狀態保存存取權杖。 Bot Frameworks SSO 服務會代表您安全地儲存權杖。 如果您將其儲存在 Bot 中,它可能會過期,或在回合之間撤銷。

從瀑布步驟內呼叫提示時,您應該在提示之後的步驟內使用權杖,然後讓權杖離開函式結尾的範圍。

### 提示使用方式

搭配 Bot DialogSet 使用時,只要使用 Add(Dialog) 將提示的新實例新增為具名對話方塊即可。 然後,您可以使用 或 PromptAsync(String, PromptOptions, CancellationToken) ,從瀑布步驟 BeginDialogAsync(String, Object, CancellationToken) 啟動提示。 系統會提示使用者視需要登入,且其存取權杖會當做引數傳遞至下一個瀑布步驟的呼叫端。

建構函式

OAuthPrompt(String, OAuthPromptSettings, PromptValidator<TokenResponse>)

初始化 OAuthPrompt 類別的新執行個體。

屬性

Id

取得或設定對話方塊的識別碼。

(繼承來源 Dialog)
Source

取得 cref=「SourceRange」/ > 的資訊。

(繼承來源 Dialog)
TelemetryClient

取得或設定 IBotTelemetryClient 要用於記錄的 。

(繼承來源 Dialog)

方法

BeginDialogAsync(DialogContext, Object, CancellationToken)

當提示對話方塊推送至對話堆疊並正在啟動時呼叫。

ContinueDialogAsync(DialogContext, CancellationToken)

當提示對話方塊是作用中的對話方塊,且使用者以新活動回復時呼叫。

EndDialogAsync(ITurnContext, DialogInstance, DialogReason, CancellationToken)

對話方塊結束時呼叫。

(繼承來源 Dialog)
GetUserTokenAsync(ITurnContext, CancellationToken)

嘗試取得使用者的權杖。

GetVersion()

取得代表這個對話方塊版本的唯一字串。 如果兩者之間的版本變更,對話方塊系統將會發出 DialogChanged 事件。

(繼承來源 Dialog)
OnComputeId()

建置對話方塊的計算識別碼。

(繼承來源 Dialog)
OnDialogEventAsync(DialogContext, DialogEvent, CancellationToken)

使用 引發事件時, DialogContext.emitEvent() 由目前對話方塊或目前對話方塊啟動的對話方塊呼叫。

(繼承來源 Dialog)
OnPostBubbleEventAsync(DialogContext, DialogEvent, CancellationToken)

在事件反升至所有父系且未處理之後呼叫。

(繼承來源 Dialog)
OnPreBubbleEventAsync(DialogContext, DialogEvent, CancellationToken)

在事件反升至其父代之前呼叫。

(繼承來源 Dialog)
RecognizeTokenAsync(OAuthPromptSettings, DialogContext, CancellationToken)

RecognizeTokenAsync 函式的共用實作。 這是供內部使用,以合併 OAuthPrompt 和 OAuthInput 的實作。 應用程式邏輯應該使用這些對話方塊類別。

RegisterSourceLocation(String, Int32)

在提供的位置註冊 cref=「SourceRange」/ > 。

(繼承來源 Dialog)
RepromptDialogAsync(ITurnContext, DialogInstance, CancellationToken)

當對話方塊應該重新提示使用者輸入時呼叫。

(繼承來源 Dialog)
ResumeDialogAsync(DialogContext, DialogReason, Object, CancellationToken)

當子對話完成此回合時呼叫,將控制項傳回此對話方塊。

(繼承來源 Dialog)
SendOAuthCardAsync(OAuthPromptSettings, ITurnContext, IMessageActivity, CancellationToken)

SendOAuthCardAsync 函式的共用實作。 這是供內部使用,以合併 OAuthPrompt 和 OAuthInput 的實作。 應用程式邏輯應該使用這些對話方塊類別。

SetCallerInfoInDialogState(IDictionary<String,Object>, ITurnContext)

SetCallerInfoInDialogState 函式的共用實作。 這是供內部使用,以合併 OAuthPrompt 和 OAuthInput 的實作。 應用程式邏輯應該使用這些對話方塊類別。

SignOutUserAsync(ITurnContext, CancellationToken)

登出使用者。

擴充方法

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

建立對話堆疊並啟動對話方塊,並將它推送至堆疊。

適用於