Botframework 密码重置功能应使用哪个提示对话框

Botframework 密码重置功能应使用哪个提示对话框,botframework,Botframework,我正在开发一个用于访问功能的简单聊天机器人。我需要有密码重置功能提示对话框。例如,如果用户帐户被放弃密码/锁定,我会向用户询问保密问题,如果sceret问题的答案与问题匹配,那么我会向用户生成一次性密码或重试选项。。 这是我的密码。。boolChoice(它是一个LuisIntent)是当用户想要休息密码时。然后我会提示 if (boolChoice.ToLower().Equals("yes")) { PromptDialog.Text

我正在开发一个用于访问功能的简单聊天机器人。我需要有密码重置功能提示对话框。例如,如果用户帐户被放弃密码/锁定,我会向用户询问保密问题,如果sceret问题的答案与问题匹配,那么我会向用户生成一次性密码或重试选项。。 这是我的密码。。boolChoice(它是一个LuisIntent)是当用户想要休息密码时。然后我会提示

 if (boolChoice.ToLower().Equals("yes"))
            {
                PromptDialog.Text(
                context: context,
                resume: ResumeAfterSecretAnswer,
                prompt: "Ok. I need you to answer your secret question: "+getSecretQuestionForUser(),
                retry: "I didn't understand. Please try again.");
            }
private string getSecretQuestionForUser()
        {
            return "What is your favorite color?";
        }

private async Task ResumeAfterSecretAnswer(IDialogContext context, IAwaitable<string> result)
        {
            string answer = await result;
            //suppose right answer is blue.. then what next i need to do . do I need to prompt here or how do I compare and generate the one time password.
// need a flow,...
        }
if(boolChoice.ToLower().Equals(“yes”))
{
PromptDialog.Text(
上下文:上下文,
简历:简历,
提示:“好的,我需要你回答你的秘密问题:”+getSecretQuestionForUser(),
重试:“我不明白。请再试一次。”);
}
私有字符串getSecretQuestionForUser()
{
返回“您最喜欢的颜色是什么?”;
}
专用异步任务ResumeAfterSecretAnswer(IDialogContext上下文,IAwaitable结果)
{
字符串应答=等待结果;
//假设正确答案为蓝色。那么接下来我需要做什么。我需要在这里提示,还是如何比较并生成一次性密码。
//需要一个流程,。。。
}
现在,在ResumeAfterSecretAnswer中,如果答案匹配,我需要做什么,然后我需要提示用户使用一次性Passbrow,或者如果不匹配,那么我需要再次提示他什么。以及我需要使用哪个promptdialog.Confirm或其他

我不太理解流动。。这里的流量应该是多少

现在我改变了方法

我现在已经改变了方法

private async Task ResumeAfterSecretAnswer(IDialogContext context, IAwaitable<string> result)
        {
            string answer = await result;

            if (answer.ToLower() == getSecretAnswerForUser())
                await context.PostAsync("Your One time password is: "+ getOneTimePasswordForUser());
            else
                await context.PostAsync("The answers do not match. Please try again.");

            context.Wait(MessageReceived);

        }
私有异步任务ResumeAfterSecretAnswer(IDialogContext上下文,IAwaitable结果)
{
字符串应答=等待结果;
if(answer.ToLower()==getSecretAnswerForUser())
wait context.PostAsync(“您的一次性密码是:”+getOneTimePasswordForUser());
其他的
等待上下文。PostAsync(“答案不匹配。请重试”);
Wait(MessageReceived);
}
如果答案不匹配,我应该在其他部分做什么。我需要再次提示用户。。我在这里应该怎么做……我做到了


请帮助。

您只需在另一台计算机上再次调用此功能,我建议您将其放入一个方法中:

PromptDialog.Text(
                context: context,
                resume: ResumeAfterSecretAnswer,
                prompt: "Ok. I need you to answer your secret question: "+getSecretQuestionForUser(),
                retry: "I didn't understand. Please try again.");
请注意来自else的context.wait(MessageReceived),它可能会因为对话框的多个出口而引发异常