OAuthPrompt 클래스
정의
중요
일부 정보는 릴리스되기 전에 상당 부분 수정될 수 있는 시험판 제품과 관련이 있습니다. Microsoft는 여기에 제공된 정보에 대해 어떠한 명시적이거나 묵시적인 보증도 하지 않습니다.
Bot Frameworks SSO(Single Sign-On) 서비스를 사용하여 로그인하도록 사용자에게 요청하는 새 프롬프트를 만듭니다.
public class OAuthPrompt : Microsoft.Bot.Builder.Dialogs.Dialog
type OAuthPrompt = class
inherit Dialog
Public Class OAuthPrompt
Inherits Dialog
- 상속
설명
프롬프트는 사용자 현재 토큰을 검색하려고 시도하고 사용자가 로그인하지 않은 경우 로그인하기 위해 누를 수 있는 단추가 포함된 '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) |
현재 대화 상자 또는 현재 대화 상자가 시작된 대화 상자에서 를 사용하여 |
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) |
대화 상자 스택을 만들고 대화 상자를 시작하여 스택에 푸시합니다. |