2016-04-22 73 views
1

我遇到了尝试创建bot的问题。当我使用Http时,一切似乎都正常。我可以将我的应用程序部署到我的网站,并通过模拟器或botframework.com与bot进行交互。Https/BotAuthentication突破botframework机器人?

不幸的是,当我尝试使用HTTPS时,从模拟器中收到401错误,当我尝试使用botframework.com时没有任何显示。

只是使我晶莹剔透,我变的唯一的东西是: 1.增加的[BotAuthentication]归因于我的ApiController像这样:

[BotAuthentication] 
public class MessagesController : ApiController 
  • 更新了仿真器/ botframework.com从http://mywebsite.com/api/messages网址https://mywebsite.com/api/messages
  • Web.config文件中的所有设置与应用标识和AppSecret。我的网站已经有一个SSL证书。

    有什么,我失踪?虽然我没有使用基本身份验证,但我认为没有其他需要设置的东西,对吧?

    +1

    对于那些稍后阅读,事实证明,我的IIS实例设置为启用基本身份验证。这似乎妨碍了T Laird-McConnell所述的BotAuthentication属性。我的解决方案是删除web.config中的基本身份验证 – sudo007

    回答

    1

    我击中了你的endpoing,IIS正在响应基本身份验证并获取方式。

    基本认证是工作方式如下: 有其中包含的用户ID头:密码编码为Base64 如果服务器不看标题则返回一个包含“基本” 403发出信号,表明网络网站需要身份验证令牌。对于一个Web浏览器来说,这意味着它会弹出一个股票用户/密码对话框,然后它会再次提交请求与头。 如果提供标题,但用户名/密码错误,服务器将返回401.

    通常,基本身份验证用于在数据库中查找,但在我们的情况下只有1个用户,它是botidid/appsecret。所有BotAuthorization属性的作用是向请求管道中添加一个检查器,以查找其中包含appid/appsecret的标头,以确保只有经过批准的调用者才能调用您的bot。

    如果你不关心,你可以简单地删除属性。无论如何,你不希望IIS坚持进入这个过程。

    有意义吗?

    0

    这理论上应该根据您对所做更改的描述进行工作。这是仿真器与您的云服务还是与本地主机上的机器人通话?你也会从门户中的Bot Framework测试控件中获得这个错误?

    如果您将BotId发送给[email protected],我可以检查我们的日志以查看是否有任何有趣的内容(或者我在@jameslew上的DM)。