如何在Azure中为多个机器人程序提供单机器人程序框架V4 C#项目

如何在Azure中为多个机器人程序提供单机器人程序框架V4 C#项目,c#,asp.net-core,botframework,azure-bot-service,C#,Asp.net Core,Botframework,Azure Bot Service,我们已经在使用Azure bot服务(bot通道注册)的团队中实现了一个bot。我们使用的是MSbotframeworkV4。目前,我们需要在Azure中为组织中的不同团队创建多个机器人。我们可以在azure portal中创建多个机器人,但我们是否应该为azure中的多个机器人使用相同的现有机器人框架V4 C#项目(端点)。我提到了一个博客,他们提到我们可以实现ICredentialProvider来管理不同的应用程序ID和密码验证。但是我找不到C#bot框架V4的任何文档或示例。你能帮我一下

我们已经在使用Azure bot服务(bot通道注册)的团队中实现了一个bot。我们使用的是MSbotframeworkV4。目前,我们需要在Azure中为组织中的不同团队创建多个机器人。我们可以在azure portal中创建多个机器人,但我们是否应该为azure中的多个机器人使用相同的现有机器人框架V4 C#项目(端点)。我提到了一个博客,他们提到我们可以实现ICredentialProvider来管理不同的应用程序ID和密码验证。但是我找不到C#bot框架V4的任何文档或示例。你能帮我一下吗?如果我使用了错误的技术,请告诉我还有没有其他方法可以达到这个目的

以下是我迄今为止尝试过的步骤。 首先创建了一个名为MultiCredentialProvider的ICredentialProvider实现,如下所示

public class MultiCredentialProvider : ICredentialProvider
    {
        public Dictionary<string, string> Credentials = new Dictionary<string, string>
        {
            {"AppId1","Password1" },
            {"AppId2","Password2" }
        };

        public Task<bool> IsValidAppIdAsync(string appId)
        {
            return Task.FromResult(this.Credentials.ContainsKey(appId));
        }

        public Task<string> GetAppPasswordAsync(string appId)
        {
            return Task.FromResult(this.Credentials.ContainsKey(appId) ? this.Credentials[appId] : null);
        }

        public Task<bool> IsAuthenticationDisabledAsync()
        {
            return Task.FromResult(!this.Credentials.Any());
        }
    }
另外,请让我知道,我们需要如何处理认证后各自机器人的对话框?我有三个机器人在Azure机器人服务中注册,需要为不同的机器人调用不同的LUIS应用程序。是否有任何方法可以在执行期间获取MainDialog.cs类中的appId,并基于appId编写路由逻辑请告诉我处理这些不同机器人程序对话框的最佳方法。另外,请让我知道如何使用自适应对话框进行处理。
提前感谢您的帮助。

链接:为什么您没有链接到您提到的博客?@Kyle:谢谢您的回复。下面是我参考并尝试实现IcredentialProvider接口的博客。您链接到的Eric Dahlvang的GitHub评论已经解释了如何在C#v4 SDK中执行您正在尝试的操作。如果您还需要其他帮助,那么您需要编辑您的问题,以显示您迄今为止所做的尝试,并解释您对哪些具体问题感到困惑。@Kyle:谢谢您的回答。我已经用我迄今为止尝试的步骤更新了这个问题,也更新了方法中的问题。请提供您宝贵的回复。链接:为什么您没有链接到您提到的博客?@Kyle:谢谢您的回复。下面是我参考并尝试实现IcredentialProvider接口的博客。您链接到的Eric Dahlvang的GitHub评论已经解释了如何在C#v4 SDK中执行您正在尝试的操作。如果您还需要其他帮助,那么您需要编辑您的问题,以显示您迄今为止所做的尝试,并解释您对哪些具体问题感到困惑。@Kyle:谢谢您的回答。我已经用我迄今为止尝试的步骤更新了这个问题,也更新了方法中的问题。请提供您宝贵的回复。
services.AddSingleton<ICredentialProvider, MultiCredentialProvider>();
[Route("api/messages/{appId}")]
[ApiController]