私はBot FrameworkとAzureAuthDialogを使用してユーザーを認証しています。認証時にユーザーのメッセージを転送する方法
ボットはまず、ユーザーに何を求めているかを尋ねます。ユーザーがメッセージを書くたびに、彼は認証されているかどうかをチェックします。彼が認証されていないとわかったら、彼に認証を求めてください。認証が完了したら、認証前にリクエストを処理し続けたいと思います。
一方、現在のところ、ユーザーが認証すると、ユーザーメッセージが失われます。ここでは、コードですが、より多くを理解することは、インラインコメントを参照してください:
public class IntentHandler : LuisDialog<object>
{
protected override async Task MessageReceived(IDialogContext context, IAwaitable<IMessageActivity> item)
{
if (!await context.IsUserAuthenticated(m_resourceId))
{
// this has the user's message
var message = await item;
// The next thing that is called here is ResumeAfterAuth function, but it does not have the user's message anymore
await context.Forward(new AzureAuthDialog(m_resourceId), ResumeAfterAuth, message, CancellationToken.None);
}
else
{
await base.MessageReceived(context, item);
}
}
private async Task ResumeAfterAuth(IDialogContext context, IAwaitable<string> item)
{
// this does not have the users's message, it only includes "User is loged in"
var message = await item;
await context.PostAsync(message);
PrivateTracer.Tracer.TraceInformation($"User {context.GetUserMail()} signed in");
await context.PostAsync(c_welcomeQuestion);
}
}
認証前からユーザーのメッセージを渡す方法任意のアイデアを? 私はMessageReceived enter code here
のフィールドにユーザーのメッセージを保存することができますが、それはあまりにも醜いようです。別の方法がありますか?あなたのResumeAfterAuth方法で
AuthBotのAzureAuthDialogは、あなたが作成したものですか? –
これはauth botのものです –