다음을 통해 공유


OAuthPrompt 클래스

정의

Bot Frameworks SSO(Single Sign-On) 서비스를 사용하여 로그인하도록 사용자에게 요청하는 새 프롬프트를 만듭니다.

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

설명

프롬프트는 사용자 현재 토큰을 검색하려고 시도하고 사용자가 로그인하지 않은 경우 로그인하기 위해 누를 수 있는 단추가 포함된 'OAuthCard'를 보냅니다. 채널에 따라 사용자는 다음 두 가지 가능한 로그인 흐름 중 하나를 통해 전송됩니다.

- 사용자가 로그인하고 SSO 서비스가 '이벤트' 또는 '호출' 작업을 사용하여 봇에 액세스 토큰을 전달하는 자동 로그인 흐름입니다. - 사용자가 로그인하면 SSO 서비스에서 봇에 ID를 확인하는 6자리 코드를 보내라는 메시지가 표시되는 "매직 코드" 흐름입니다. 이 코드는 표준 '메시지' 작업으로 전송됩니다.

두 흐름은 모두 '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)

대화 상자 스택을 만들고 대화 상자를 시작하여 스택에 푸시합니다.

적용 대상