2012-10-16 33 views
4

我想为MS Dynamics CRM 2011创建一个iPad应用程序。我们有一个CRM系统,您可以使用AD用户名和密码在世界任何地方登录。如何在iOS中使用MS CRM 2011 Webservices?

我知道CRM附带发现服务,组织服务和OData服务。但我不知道如何使用这些服务?我想知道我应该如何验证用户?

这是我发现的,但不工作的样本代码。:(

NSString *username = @"domain/username"; 
NSString *password = @"password"; 
NSString *loginURL = @"http://server/OrgName/XRMServices/2011/OrganizationData.svc/"; 

NSURL *url = [NSURL URLWithString:loginURL]; 

NSString *JSONString = [NSString stringWithFormat:@"{\"user id\":\"%@\",\"password\":\"%@\"}", username, password]; 

NSData *JSONBody = [JSONString dataUsingEncoding:NSUTF8StringEncoding]; 

NSMutableURLRequest *loginRequest = [[NSMutableURLRequest alloc] initWithURL:url]; 
loginRequest.HTTPMethod = @"POST"; 
loginRequest.HTTPBody = JSONBody; 

NSOperationQueue *queue = [NSOperationQueue new]; 

[NSURLConnection sendAsynchronousRequest:loginRequest 
       queue:queue 
       completionHandler:^(NSURLResponse *response, NSData *data, 
            NSError *error){ 

            // Manage the response here. 
            [self fetchedData:data]; 
            NSLog(@"error:%@", error); 
            NSLog(@"response:%@", response);}]; 
    } 

感谢您的帮助。

我见过

回答

0

大多数的实现和产品使用中介服务器或服务。以代理调用到CRM提供的REST服务是一般的CRUD操作OK,但确实缺乏的功能,其他的软件开发工具包提供

优点:

  • 实现一个SDK,更好地有利于你想要的客户支持
  • 你得到的功能可充分补充任何的CRM软件开发工具包

缺点:

  • 它可以是一个大量的工作。

如果它的基本要素直接从客户端连接到CRM安装。考虑通过浏览器访问OData源,同时使用本地代理或浏览器的DEV工具捕获流量。编写创建相同Web请求的代码。理论上讲,这与使用浏览器访问CRM一样安全。使用适当的方法来加密,掩盖和遮蔽您的流量。

还有其他的选择,我没有亲身体验过。我可以提供他们的研究,但不能自信地谈论他们。

MSDN: CRM 2011 REST Service Documentation

MSDN: CRM 2011 SDK Overview

0

如果试图对来自iOS的动态CRM认证本身,你将需要大量的时间....当我说了很多的,很多。

本地/在线上有不同的CRM配置,使用IFD和https(实际上需要根据ADFS进行身份验证,验证证书链等等),它会更加棘手。

最简单的事情就是公开一个以.NET实现的代理Web服务,该代理Web服务为您处理针对CRM的身份验证,然后从您的iOS应用程序验证该Web服务(使用普通的https请求和更简单的认证机制)

但是,即使这样做,它仍然是很多时间。