在 ios 应用程序中使用活动目录用户验证 Web 服务?
Posted
技术标签:
【中文标题】在 ios 应用程序中使用活动目录用户验证 Web 服务?【英文标题】:Authenticate a webservice with active directory users in ios application? 【发布时间】:2015-09-10 13:24:23 【问题描述】:我正在 ios 中开发客户端应用程序。在此应用程序中,我需要从 Web 服务获取服务数据,此服务仅可用于 Active Directory 用户,但不适用于匿名用户。如何使用 Active Directory 用户凭据从该 Web 服务访问和获取数据。
提前致谢
【问题讨论】:
【参考方案1】:在这种情况下,您必须在访问 Web 服务时传递用户凭据。
NSURL *url = [NSURL URLWithString: [NSString stringWithFormat:@"Ur URL"]];
NSString *userPasswordString = [NSString stringWithFormat:@"%@:%@",username,password];
NSData * userPasswordData = [userPasswordString dataUsingEncoding:NSUTF8StringEncoding];
NSString *base64EncodedCredential = [userPasswordData base64EncodedStringWithOptions:0];
NSString *authString = [NSString stringWithFormat:@"Basic %@", base64EncodedCredential];
NSMutableURLRequest *req = [NSMutableURLRequest requestWithURL:url];
NSString *msgLength =[NSString stringWithFormat:@"%lu", (unsigned long)[poststr length]];
[req addValue:@"text/xml; charset=utf-8" forHTTPHeaderField:@"Content-Type"];
[req addValue:[NSString stringWithFormat:@"http://www.hello.com"] forHTTPHeaderField:@"SOAPAction"];
[req addValue:authString forHTTPHeaderField:@"Authorization"];
[req addValue:msgLength forHTTPHeaderField:@"Content-Length"];
[req setHTTPMethod:@"POST"];
[req setHTTPBody: [poststr dataUsingEncoding:NSUTF8StringEncoding]];
[NSURLConnection sendAsynchronousRequest:req queue:[NSOperationQueue currentQueue] completionHandler:^(NSURLResponse *response, NSData *data, NSError *error)
// NSError *error1;
];
【讨论】:
您好新加坡感谢您的快速回复,在我的应用程序中,我正在使用 MKNetworkKit 获取服务数据。那么使用 mknetwork 有什么解决方案可以解决我的问题吗?以上是关于在 ios 应用程序中使用活动目录用户验证 Web 服务?的主要内容,如果未能解决你的问题,请参考以下文章