Мне нужно динамически передавать пароль бота MS при использовании LuisDialog.
Мне удалось сделать это успешно при обработке системных сообщений (см. раздел else в моем коде). Но при использовании Luis Diaog, поскольку он не использует объект соединителя, я получаю исключение.
У меня есть следующий код:
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, поскольку любой, у кого есть доступ к той же подписке, может увидеть там секрет в виде открытого текста. Поэтому мне нужно хранить секрет в зашифрованном виде и динамически расшифровывать его, а затем передавать в бот-фреймворк.