2012-10-16 35 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請求和更簡單的認證機制)

但是,即使這樣做,它仍然是很多時間。