.net 如何修改用户';使用directline通道时,在MS Bot Framework中显示名称

.net 如何修改用户';使用directline通道时,在MS Bot Framework中显示名称,.net,botframework,direct-line-botframework,.net,Botframework,Direct Line Botframework,正在使用AAD身份验证开发一个bot,其中我们选择directline作为我们的通道。现在,我们已经尝试在下面的代码段中显示经过身份验证的人的用户名,而不是userid <script> BotChat.App({ directLine: { secret: "***********" }, user: { id: 'userid' }, bot: { id: 'botid' }, resize: 'detect' }, document.getEle

正在使用AAD身份验证开发一个bot,其中我们选择directline作为我们的通道。现在,我们已经尝试在下面的代码段中显示经过身份验证的人的用户名,而不是userid

<script>
BotChat.App({
    directLine: { secret: "***********" },
    user: { id: 'userid' },
    bot: { id: 'botid' },
    resize: 'detect'
}, document.getElementById("bot"));
</script>

BotChat.App({
directLine:{secret:**************},
用户:{id:'userid'},
bot:{id:'botid'},
调整大小:“检测”
},document.getElementById(“bot”);
更改

user: { id: 'userid' },

您甚至可以添加用户:{id:yourUserIDFromad,name:yourUserDisplayName}

我们已经尝试在下面的代码片段中,在userid的位置显示经过身份验证的人的用户名

我假设您是.NET开发人员,并且希望动态地将用户标识传递给BotChat,您可以尝试以下方法:

  • 在ASP.NET MVC应用程序中,您可以从控制器获取用户信息并将其存储在ViewBag中,然后您可以从ViewBag中检索值,并在启动BotChat时将其作为
    userid
    动态传递。以下代码片段供您参考
在控制器中:

视图中:


$(函数(){
var userid='@(ViewBag.userinfo)';
//警报(用户标识);
BotChat.App({
directLine:{secret:{directLine_secret}}},
用户:{id:userid},
bot:{id:'fehanbotdg'},
调整大小:“检测”
},document.getElementById(“bot”);
})
测试结果:

  • 在ASP.NET webform应用程序中,您可以从代码隐藏获取用户信息并将其存储在hiddenfield中,然后您可以从hiddenfield获取用户信息并使用它启动您的聊天

启动BotChat时,是否尝试动态传递
用户ID
?是的,必须动态更改。最初它必须是userid,一旦用户通过身份验证,它应该显示他的名字或id。如何将useridfromad传递给id
user: { id: yourUserIdFromAad },
public ActionResult Chat()
{
    ViewBag.userinfo = User.Identity.GetUserName();
    return View();
}
<script>
    $(function () {
        var userid = '@(ViewBag.userinfo)';
        //alert(userid);

        BotChat.App({
            directLine: { secret: "{directline_secret}" },
            user: { id: userid},
            bot: { id: 'fehanbotdg' },
            resize: 'detect'
        }, document.getElementById("bot"));
    })
</script>