我在尝试创建机器人时遇到问题。当我使用Http时,一切似乎都运行正常。我可以将我的应用程序部署到我的网站,并通过模拟器或botframework.com与bot进行交互。
不幸的是,当我尝试使用HTTPS时,我从模拟器中收到401错误,当我尝试使用botframework.com时没有显示任何内容。
为了让我清楚,我改变的唯一事情是: 1.将[BotAuthentication]属性添加到我的ApiController中,如下所示:
[BotAuthentication]
public class MessagesController : ApiController
Web.config全部使用appId和AppSecret设置。我的网站已经拥有SSL证书。
我有什么遗失的吗?虽然在假设我没有其他任何东西需要设置之前我从未使用过基本身份验证,对吧?
答案 0 :(得分:1)
我点击你的终点并且IIS正在响应基本身份验证并阻碍。
Basic Auth的工作方式如下: 有一个标题包含UserId:密码编码为base64 如果服务器没有看到标题,则返回带有“basic”的403,表示该网站需要auth令牌。对于Web浏览器,这意味着它将弹出一个股票用户/密码对话框,然后它将再次使用标题提交请求。 如果提供了标头但用户/密码错误,则服务器返回401.
通常基本的auth用于在数据库中查找,但在我们的例子中只有1个用户,它是bot appid / appsecret。所有BotAuthorization属性都是将检查器添加到请求管道中,以查找其中包含appid / appsecret的标头,以确保只有经过批准的调用者才能调用您的机器人。
如果您不关心,只需删除该属性即可。无论如何,你不希望IIS坚持这个过程。
有意义吗?
答案 1 :(得分:0)
理论上,这应该基于您对所做更改的描述而有效。这是模拟器与您的云服务或本地主机上的机器人交谈?你也从门户网站中的Bot Framework测试控件中得到了这个错误吗?
如果您将您的BotId发送给botframework@microsoft.com,我可以查看我们的日志以查看是否有任何有趣的内容(或者我在Twitter上的@jameslew上的DM)。