4

我想为 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);}];
    }

谢谢你的帮助。

4

2 回答 2

0

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

有不同的 CRM 配置 On-Premise / On-line,使用 IFD 和 https 会更加棘手(您实际上需要针对 ADFS 进行身份验证,验证证书链......等等)。

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

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

于 2014-12-15T22:50:49.457 回答
0

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

优点:

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

缺点:

  • 这可能是很多工作。

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

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

MSDN:CRM 2011 REST 服务文档

MSDN:CRM 2011 SDK 概述

于 2013-01-16T18:33:48.063 回答