Мне нужно передавать пароль MS bot динамически при использовании LuisDialog.Pass bot password при использовании 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, так как тот, кто имеет доступ к той же подписке, может видеть секрет как открытый текст там. Поэтому мне нужно хранить секретный зашифрованный файл и его необходимо расшифровать, а затем передать его в рамки бота.
Зачем вам нужно передать BotPassword в LuisDialog? Вы не используете атрибут BotAuthentication? –
Нет Я не использую этот атрибут, я хочу его зашифровать и расшифровать, поэтому ему нужно каким-то образом передать его –
Шифровать/расшифровать что? И почему вы не можете передавать пароль в качестве параметра диалога ctor? –