在我的NSURLConnectionDelegate
实例中,当连接收到对HTTP请求的401 Unauthorized
响应时,该请求包含与所记录的受支持的身份验证方法之一相对应的身份验证质询标头(例如WWW-Authenticate: Basic
NSURLAuthenticationMethodHTTPBasic
)然后按照我的预期调用我的connection:canAuthenticateAgainstProtectionSpace:
方法。
但是,我还需要能够对未列为开箱即用的身份验证方法进行身份验证,例如:我可能会收到质询标头WWW-Authenticate: XAuth7
,当发生这种情况时,不会调用connection:canAuthenticateAgainstProtectionSpace:
方法。
我猜这是因为它不知道认证方法是什么,但我理想的是喜欢通过添加支持来处理它的能力,或者甚至只是获取原始挑战标题并在连接代表。
这是Cocoa(iOS)库的一个基本限制,因为它们不能扩展到其他身份验证方法,或者是否有某种方法可以插入对其他身份验证方法的支持?
请注意,我正在使用已弃用的连接委托方法,因为我需要支持iOS 4.3,因为它们仍然是最新的解决方案,但同样的问题适用于更现代的connection:willSendRequestForAuthenticationChallenge:
它也没有被称为“不支持的”身份验证方法。