【问题标题】:How can I tell which SASL mechanism was used?如何判断使用了哪种 SASL 机制?
【发布时间】:2013-08-01 02:42:00
【问题描述】:

在我的代码中,在创建 TIdIMAP4 连接之前,我设置了一大堆 SASL 机制,希望按照规定的“最好到最差”的顺序,如下所示:

IMAP.SASLMechanisms.Add.SASL := mIdSASLCRAMSHA1;
IMAP.SASLMechanisms.Add.SASL := mIdSASLCRAMMD5;
IMAP.SASLMechanisms.Add.SASL := mIdSASLSKey;
IMAP.SASLMechanisms.Add.SASL := mIdSASLOTP;
IMAP.SASLMechanisms.Add.SASL := mIdSASLAnonymous;
IMAP.SASLMechanisms.Add.SASL := mIdSASLExternal;
IMAP.SASLMechanisms.Add.SASL := mIdSASLLogin;
IMAP.SASLMechanisms.Add.SASL := mIdSASLPlain;

我正在设置IMAP.AuthType := iatSASL;,所以我认为它应该与 SASL 连接。但是有什么方法(比如在建立连接之后)找出它在创建连接时实际使用的 SASL 机制吗?

【问题讨论】:

  • 快速查看来源后,我没有看到任何存储成功使用的机制的内容

标签: delphi indy indy10


【解决方案1】:

抱歉,在 Indy 中没有任何东西可以找出尝试和/或成功的 SASL。 Indy 将SASLMechanisms 的内容与服务器报告的 SASL 进行比较,建立一个匹配列表,然后遍历该列表,一次尝试每个 SASL,直到其中一个成功,然后丢弃该列表。了解正在尝试哪些 SASL 的唯一方法是监视原始套接字流量,例如使用 Indy 的 Intercept 组件之一,并手动解析正在发送的 IMAP 命令。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2012-02-26
    • 2022-08-19
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-04-15
    • 1970-01-01
    相关资源
    最近更新 更多