我想为MS Dynamics CRM 2011创建一个iPad应用程序。我们有一个CRM系统,您可以使用AD用户名和密码登录世界任何地方。
我知道CRM附带了Discovery服务,组织服务和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 :(得分:0)
我见过的大多数实现和产品都使用中介服务器或服务来代理调用CRM。可用的REST服务适用于一般CRUD操作,但缺少其他SDK提供的功能。
优点:
缺点:
如果必须直接从客户端连接到CRM安装。考虑通过浏览器访问OData源,同时使用本地代理或浏览器的DEV工具捕获流量。编写创建相同Web请求的代码。从理论上讲,这与使用浏览器访问CRM一样安全。使用适当的方法加密,屏蔽和模糊您的流量。
还有其他我没有亲身经历过的选择。我可以提供他们进行研究,但不能自信地谈论他们。
答案 1 :(得分:0)
如果您尝试从iOS本地对Dynamics CRM进行身份验证,则需要很多时间......当我说了很多时,很多。
有不同的CRM配置内部部署/在线,使用IFD和https(实际上需要对ADFS进行身份验证,验证证书链等等)会更加棘手。
您可以开始的最简单的事情是公开一个在.NET中实现的代理Web服务,该服务处理针对您的CRM身份验证,然后从您的iOS应用程序验证该Web服务(使用普通的https请求和一种更简单的认证机制)
但是,即使这样做,它仍然需要很长时间。