2014-04-16 4 views
0

조직의 사용자에 대한 세부 정보를 얻으려면 SharePoint 서버/_vti_bin/SilverlightProfileService.json/GetUserSLProfileData 서비스에 연결하려고합니다.Sharepoint silverlightProfileService IOS/Objective에서 NTLM 인증

나는 ASIHTTPRequest 패키지를 사용하여 목표 - C에서 내 요청을 보내고 및 잡하고있다 "ERROR 도메인 = ASIHTTPRequestErrorDomain 코드 = 3 '필요한 인증'"

내 요청 코드 :

NSURL *url = [NSURL URLWithString:@"http://aDOMAIN/_vti_bin/SilverlightProfileService.json/GetUserSLProfileData"]; 
NSString *jsonString = @"{\"AccountNames\": [\"intdev\\aUSER\" ]}"; 

ASIHTTPRequest *request = [ASIHTTPRequest requestWithURL:url]; 
[request appendPostData:[jsonString dataUsingEncoding:NSUTF8StringEncoding]]; 
[request setRequestMethod:@"POST"]; 

[request addRequestHeader:@"Content-Type" value:@"application/json"]; 
[request addRequestHeader:@"Expect" value:@"100-continue"]; 

[request setUsername:@"intdev\\aUSER"]; 
[request setPassword:@"[email protected]"]; 
[request setDomain:@"aDOMAIN"]; 

[request startSynchronous]; 
NSError *error = [request error]; 
if (!error) { 
    NSString *response = [request responseString]; 
    NSLog(@"%@", response); 
} 
else{ 
    NSLog(@"%@", error); 
} 

내가 가진 NTLM으로 인증하는 요청을 확인하기 위해 피들러를 사용했고 정확한 사용자 이름/암호/도메인을 사용하고 있습니다.

MY REQUEST 

POST http://aDOMAIN/_vti_bin/SilverlightProfileService.json/GetUserSLProfileData HTTP/1.1 
Host: aDOMAIN 
Expect: 100-continue 
Connection: keep-alive 
Accept-Encoding: gzip 
Content-Type: application/json 
Content-Length: 36 
Connection: keep-alive 
Authorization: NTLM TlRMTVNTUAADAAAAGAAYAEAAAAD0APQAWAAAAEAAQABMAQAAGgAaAIwBAAAmACYApgEAAAAAAAAAAAAABYIIAKndYKPN+sArlPt5qycejx+a89LCSC7UwM5wWr0Ld5T6ndjpxyZVBIcBAQAAAAAAABA+zhcnWc8BmvPSwkgu1MAAAAAAAgAMAEkATgBUAEQARQBWAAEAFABTAFAAMgAwADEAMwBQAE8AQwAxAAQAKABpAG4AdABkAGUAdgAuAEQAZQBwAHQARABlAHYALgBsAG8AYwBhAGwAAwA+AFMAUAAyADAAMQAzAFAATwBDADEALgBpAG4AdABkAGUAdgAuAEQAZQBwAHQARABlAHYALgBsAG8AYwBhAGwABQAaAEQAZQBwAHQARABlAHYALgBsAG8AYwBhAGwABwAIAFgVOakmWc8BAAAAAAAAAABTAFAAUABPAEMATQBZAFMASQBUAEUALgBJAE4AVABEAEUAVgAuAEQARQBQAFQARABFAFYALgBMAE8AQwBBAEwAaQBuAHQAZABlAHYAXABwADAAOAA4ADUAOQBMAGEAYwBoAGwAYQBuAHMALQBpAE0AYQBjAC4AbABvAGMAYQBsAA== 
User-Agent: sharepoint 1.0 (iPhone Simulator; iPhone OS 7.1; en_US) 

{"AccountNames": ["intdev\aUSER" ]} 


MY RESPONSE 

HTTP/1.1 401 Unauthorized 
Cache-Control: private 
Content-Length: 0 
SPRequestGuid: 2fad879c-7cc6-700e-0000-0223ed9d2abe 
request-id: 2fad879c-7cc6-700e-0000-0223ed9d2abe 
X-FRAME-OPTIONS: SAMEORIGIN 
SPRequestDuration: 3 
SPIisLatency: 2 
X-AspNet-Version: 4.0.30319 
X-Powered-By: ASP.NET 
WWW-Authenticate: NTLM 
X-Content-Type-Options: nosniff 
X-MS-InvokeApp: 1; RequireReadOnly 
MicrosoftSharePointTeamServices: 15.0.0.4420 
Date: Wed, 16 Apr 2014 03:48:09 GMT 
Proxy-Support: Session-Based-Authentication 

나는 아주 어리 석다. 나는 모든 것에 대해 노력한 것처럼 느껴진다. 무엇이든 도움을 주시면 감사하겠습니다.

미리 감사드립니다. Lachlan.

답변

0

많은 조사 끝에 AFNetworking을 사용하기 위해 내 서비스를 리팩터링했습니다. 모든 인증을 자동으로 처리 할 수있었습니다.