如何在iOS中发送NTLM请求

我使用json(NSJSONSerialization)和NSURL进行服务器客户端通信。 直到现在它工作正常,但现在NTLM安全已经在服务器上实现。

任何人都可以告诉我如何发送与iOS的NTLM请求?

谢谢

如果可以使用NSURLProtectionSpace ,则提供NSString * NSURLAuthenticationMethodNTLM; 身份validation方法。

东西在线上:

NSURLProtectionSpace *protectionSpace = [[NSURLProtectionSpace alloc] initWithHost: _host port: 80 protocol: @"http" realm: _host authenticationMethod:NSURLAuthenticationMethodNTLM]; 

这段代码将会有所帮助

 NSMutableString *nodeContent = [[NSMutableString alloc]init]; NSString *soapFormat = [NSString stringWithFormat:@"<?xml version=\"1.0\" encoding=\"utf-8\"?>\n" "<soap:Envelope xmlns:xsi=\"http://www.w3.org/2001/XMLSchema-instance\" xmlns:xsd=\"http://www.w3.org/2001/XMLSchema\" xmlns:soap=\"http://schemas.xmlsoap.org/soap/envelope/\">\n" "<soap:Body>\n" "<GetListCollection xmlns=\"http://schemas.microsoft.com/sharepoint/soap/\" />\n" "</soap:Body>\n" "</soap:Envelope>\n"]; NSLog(@"The request format is %@",soapFormat); NSURL *locationOfWebService = [NSURL URLWithString:@"http://localhost/_vti_bin/lists.asmx"]; NSLog(@"web url = %@",locationOfWebService); NSMutableURLRequest *theRequest = [[NSMutableURLRequest alloc]initWithURL:locationOfWebService]; NSString *msgLength = [NSString stringWithFormat:@"%d",[soapFormat length]]; [theRequest addValue:@"text/xml" forHTTPHeaderField:@"Content-Type"]; [theRequest addValue:@"http://schemas.microsoft.com/sharepoint/soap/GetListCollection" forHTTPHeaderField:@"SOAPAction"]; [theRequest addValue:msgLength forHTTPHeaderField:@"Content-Length"]; [theRequest setHTTPMethod:@"POST"]; //the below encoding is used to send data over the net [theRequest setHTTPBody:[soapFormat dataUsingEncoding:NSUTF8StringEncoding]]; NSURLConnection *connect = [[NSURLConnection alloc]initWithRequest:theRequest delegate:self]; if (connect) { webData = [[NSMutableData alloc]init]; } else { NSLog(@"No Connection established"); } 

请参阅教程和示例代码

针对iOS的NTLM请求。 我用这个