我正在尝试为我的一个客户端实现基于SSL的Http摘要认证。我找不到与此相关的任何参考。这可能实现吗?
谢谢
最佳答案
经过几项研究,我发现,iOS不提供对SSL上的Http身份验证的内置支持。但是,如果您急于实现它,请创建一个套接字,然后进行Digest / NTLM / ...握手,并使用相同的套接字来创建Input / Output流。到目前为止,这是唯一的方法。
但是,对于常规Http请求(例如POST / GET / ...),可以使用NSURLConnection类作为以下代码来对服务器进行身份验证。
- (void)connection:(NSURLConnection *)connection didReceiveAuthenticationChallenge:(NSURLAuthenticationChallenge *)challenge
{
NSLog(@"InShiva didReceiveAuthenticationChallenge") ;
if ([challenge previousFailureCount] == 0)
{
NSLog(@"received authentication challenge");
NSURLCredential *newCredential = [NSURLCredential credentialWithUser:@"username"
password:@"password"
persistence:NSURLCredentialPersistenceForSession];
NSLog(@"credential created");
[[challenge sender] useCredential:newCredential forAuthenticationChallenge:challenge];
NSLog(@"responded to authentication challenge");
}
else
{
NSLog(@"previous authentication failure");
}
}