2017-09-20 167 views
0

我想在C#中實現一個POP3客戶端,並且使用AUTH PLAIN的身份驗證正在殺死我。我在pop3.live.com上使用我的帳戶進行測試,但無法超越認證。我試過通過端口995和普通110(然後切換到TLS)通過SSL連接,但無法設法通過身份驗證。c#POP3客戶端實現

我使用TcpClient類來建立連接並從服務器獲取+ OK響應。在進行非SSL連接時,我使用命令CAPA檢查功能,並獲得響應STLS。因此,我發送命令STLS,切換到SslStream,發送另一個CAPA命令來檢查身份驗證機制,並獲得支持SASL PLAIN(不在常規連接中)。我已經嘗試發送base64「account \ [email protected] \ 0password」,「\ [email protected] \ 0password」,「\ 0account \ 0password」 0password「......所有可能的組合,但是當發送證書與AUTH PLAIN一致時獲得」協議錯誤「,或者在發送AUTH PLAIN(如預期的那樣返回」+「)時發送證書時獲得」未經授權...「。

我錯過了什麼嗎?任何人都可以提供一個示例如何使用SSL/TLS進行身份驗證?

謝謝!

回答

0

你需要使用「\ [email protected] \ 0password」

+0

我做了嘗試,卻得到了一個「協議錯誤16」,所以我假設我已經錯過了一些東西發送AUTH PLAIN前。 – Glumac

+0

您需要使用字節數組來表示該序列,而不是字符串。 – jstedfast

+0

是的,沒有其他方式可以寫入流。我嘗試了不同的編碼(UTF8,ASCII),無論是否轉換爲base64,都沒有成功。 – Glumac