在 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 服务?的主要内容,如果未能解决你的问题,请参考以下文章

在 Web 应用程序中记录用户活动

如何使用身份服务器对活动目录用户进行身份验证?

Azure 移动服务 - 多个 azure 活动目录

基于 REST 的 Web 应用架构的身份验证

为 iOS 应用程序中的 Facebook 身份验证设计,该应用程序还访问安全的 Web 服务

使用活动目录的 Spring 安全认证失败