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 服务将使用“event”或“invoke”活动转发机器人访问令牌。 - “magic code”流,用户登录后,SSO 服务会提示他们向机器人发送六位数代码,确认其身份。 此代码将作为标准“message”活动发送。

“OAuthPrompt”自动支持这两个流,唯一需要注意的是,不要阻止提示可能正在等待的“事件”和“调用”活动。

注意:应避免将访问令牌与机器人的其他状态一起保留。 Bot Frameworks SSO 服务将代表你安全地存储令牌。 如果将其存储在机器人状态中,则它可能会过期或两轮之间撤销。

从瀑布步骤中调用提示时,应按照提示在步骤中使用令牌,然后让令牌超出函数末尾的范围。

### 提示用法

与机器人 DialogSet 一起使用时,只需使用 Add(Dialog)将提示的新实例添加为命名对话框。 然后,可以使用 或 PromptAsync(String, PromptOptions, CancellationToken)从瀑布步骤BeginDialogAsync(String, Object, CancellationToken)启动提示。 系统将根据需要提示用户登录,其访问令牌将作为参数传递给下一个瀑布步骤的调用方。

构造函数

OAuthPrompt(String, OAuthPromptSettings, PromptValidator<TokenResponse>)

初始化 OAuthPrompt 类的新实例。

属性

Id

获取或设置对话框的 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()

生成对话框的计算 ID。

(继承自 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)

创建对话堆栈并启动对话,将其推送到堆栈上。

适用于