我们能否以编程方式在 iPhone 上通过 SSL 实现 HTTP 摘要代理,这可能吗?
can we implement HTTP Digest Proxy over SSL on iPhone programmatically, is it possible?
我正在尝试为我的一个客户实施基于 SSL 的 Http 摘要身份验证。我找不到与此相关的任何参考。这可以实现吗?
谢谢
经过多次研究,我发现,iOS 不提供任何此类内置的对基于 SSL 的 Http 身份验证的支持,期望 SOCKS。但是,如果您迫切希望实现它,请创建一个套接字并执行 Digest/NTLM/... 握手并使用相同的套接字创建 Input/Output 流。截至目前,这是唯一的方法。
但是,对于 POST/GET/... 等常规 Http 请求,您可以使用 NSURLConnection class 作为以下代码来验证服务器。
- (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");
}
}
我正在尝试为我的一个客户实施基于 SSL 的 Http 摘要身份验证。我找不到与此相关的任何参考。这可以实现吗?
谢谢
经过多次研究,我发现,iOS 不提供任何此类内置的对基于 SSL 的 Http 身份验证的支持,期望 SOCKS。但是,如果您迫切希望实现它,请创建一个套接字并执行 Digest/NTLM/... 握手并使用相同的套接字创建 Input/Output 流。截至目前,这是唯一的方法。
但是,对于 POST/GET/... 等常规 Http 请求,您可以使用 NSURLConnection class 作为以下代码来验证服务器。
- (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");
}
}