私はボットにユーザーをログインするBotAuth nugetパッケージを使用しています。最近、私は保存しhttps://docs.microsoft.com/en-us/bot-framework/dotnet/bot-builder-dotnet-state-azure-table-storageで述べた手順に従うことで、ボットの状態データを管理するためのAzureテーブルストレージを実装しました。エラー
私のGlobal.asax.csファイルには、次のようになります。
public class WebApiApplication : System.Web.HttpApplication
{
protected void Application_Start()
{
var store = new TableBotDataStore(CloudStorageAccount.DevelopmentStorageAccount);
Conversation.UpdateContainer(builder =>
{
builder.Register(c => store)
.Keyed<IBotDataStore<BotData>>(AzureModule.Key_DataStore)
.AsSelf()
.SingleInstance();
builder.Register(c => new CachingBotDataStore(store,
CachingBotDataStoreConsistencyPolicy
.ETagBasedConsistency))
.As<IBotDataStore<BotData>>()
.AsSelf()
.InstancePerLifetimeScope();
});
GlobalConfiguration.Configure(WebApiConfig.Register);
}
}
そしてMessagesControllerはボットテンプレートのものと同じである:それをテストするには、私が取得、
[BotAuthentication]
public class MessagesController : ApiController
{
/// <summary>
/// POST: api/Messages
/// Receive a message from a user and reply to it
/// </summary>
public async Task<HttpResponseMessage> Post([FromBody]Activity activity)
{
if (activity.Type == ActivityTypes.Message)
{
await Conversation.SendAsync(activity,() => new Dialogs.RootDialog());
}
else
{
HandleSystemMessage(activity);
}
var response = Request.CreateResponse(HttpStatusCode.OK);
return response;
}
private Activity HandleSystemMessage(Activity message)
{ ...... }
}
今サインインカードが予期したとおりにクリックされ、承認プロセスが完了すると、ブラウザで次のエラーが表示されます。
正確に何が欠けていますか?オートファックモジュールの登録ですか?誰もこれのための任意の作業サンプルを持っていますか?
代わりにこれを使用することが好ましいあなたにもあなたのメッセージコントローラを投稿してくださいことはできますか? – JasonSowers
@JasonSowersを追加しました。メッセージコントローラは、ボットの初期テンプレートと同じです。私はそれに変更を加えなかった。 –
githubで[この問題:「***カスタム状態サービスで認証が失敗する***」(https://github.com/richdizz/BotAuth/issues/8)が見つかりました。あなたはweshackettのコメントを参照することができます。設定したデータストアを使用するように 'CallBack controller 'を修正してみてください。 –