如何在iOS中使用MS CRM 2011 Web服务



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

我知道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);}];
}

谢谢你的帮助。

我见过的大多数实现和产品都使用中介服务器或服务来代理对CRM的调用。可用的REST服务可以用于一般的CRUD操作,但缺少其他SDK提供的功能。

优点:

  • 实现一个更好地支持您想要支持的客户端的SDK
  • 您可以获得任何CRM SDK中提供的全部功能

缺点:

  • 这可能是一项艰巨的工作

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

还有其他我个人没有经历过的选择。我可以提供它们进行研究,但不能自信地谈论它们。

MSDN:CRM 2011 REST服务文档

MSDN:CRM 2011 SDK概述

如果您尝试从iOS本机对Dynamics CRM进行身份验证,您将需要大量时间。。。。当我说很多就是很多。

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

最简单的方法就是公开一个在中实现的代理Web服务。NET,它为您处理针对CRM的身份验证,然后从您的iOS应用程序验证该web服务(使用正常的https请求和更简单的身份验证机制)

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

最新更新