2016-04-22 27 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)。