2017-02-09 1 views
0

LuisDialogを使用するときにMSボットパスワードを動的に渡す必要があります。LuisDialog使用時にボットパスワードを渡す

私はシステムメッセージを処理するときに問題なく処理できました(私のコードのelseセクションを参照してください)。しかし、Luis Diaogを使用する場合は、コネクタオブジェクトを使用していないので、例外が発生しています。

I持って次のコード:

 public async Task<HttpResponseMessage> Post([FromBody]Activity activity) 
     { 
      try 
      { 
       ConnectorClient connector = new ConnectorClient(new Uri(activity.ServiceUrl), m_botAppId, m_botAppPassword); 

       if (activity.Type == ActivityTypes.Message) 
       { 
// *how to pass the bot app password here???* 

        await Conversation.SendAsync(activity,() => new IntentHandler(m_cmConnectionString, m_luisModelId, m_luisModelKey, m_tfsUser, m_tfsPassword)); 

       } 
       else 
       { 
        var reply = HandleSystemMessage(activity); 
        if (reply != null) 
        { 
         await connector.Conversations.ReplyToActivityAsync(reply); 
        } 
       } 
       return Request.CreateResponse(HttpStatusCode.OK); 
      } 

なぜ私は動的にパスワードを渡す必要がありますか? シークレットをプレーンテキストファイルに保存してチェックインしたくないため、同じサブスクリプションにアクセスできるユーザーはシークレットをプレーンテキストとして見ることができるため、Azure.AppSettingsにプレーンテキストとして保存したくないためです。 したがって私は暗号化された秘密を保存し、それを動的に解読し、それをボットフレームワークに渡す必要があります。

+0

なぜBotPasswordをLuisDialogに渡す必要がありますか? BotAuthentication属性を使用していませんか? –

+0

いいえ私は属性を使用していません、私はそれを暗号化して解読したいので、何とかそれを渡す必要があります –

+0

何を暗号化/解読?なぜ、ダイアログボックスのパラメータとしてパスワードを渡すことができないのですか? –

答えて

0

私はAppSettingsをコンストラクターに動的に設定して解決しました。

ConfigurationManager.AppSettings[c_botAppPasswordSettingName] = m_botAppPassword; 

これは機能します。誰かが別のアイデアを持っていれば私に知らせてくれました。

+0

良い!他のユーザーがこの回答をすばやく見つけるのを助けるためにこの質問に回答してください。 –

+0

サイトの制限に従って2日以内に行うことができます。私はそれをします。 –

関連する問題