NTML Authentication and Restkit(0.2.0) - defaultCredentials未设置为Object Request

时间:2013-04-26 19:52:04

标签: restkit windows-authentication restkit-0.20

这适用于iOS版的Restkit v0.2.0。

我正在尝试通过设置HTTP客户端的默认凭据来使用Windows身份验证,以便在请求的身份验证受到质疑时,它可以正常工作。

我这样做:

[[RKObjectManager sharedManager].HTTPClient setDefaultCredential:[NSURLCredential credentialWithUser:usr password:pass persistence:NSURLCredentialPersistenceForSession]];

然后我尝试获取我的对象:

[[RKObjectManager sharedManager].router.routeSet addRoute:[RKRoute routeWithClass:[Applications class] pathPattern:@"portfolio" method:RKRequestMethodGET]];

[RKObjectManager.sharedManager getObjectsAtPath:@"portfolio" parameters:nil success:^(RKObjectRequestOperation *operation, RKMappingResult *mappingResult)
 {
     NSLog(@"It Worked: %@", [mappingResult array]);
 } failure:^(RKObjectRequestOperation *operation, NSError *error) {
     NSLog(@"It Failed: %@", error); 
 }];

但它不起作用,我总是得到#34;它失败了#34;并且页面显示"无效的凭证"。

所以我开始环顾四周,发现我需要回应身份验证挑战,但这已经完成了。如果我通过执行它的方法,我的凭据是nil(0x00000000)。我走过的方法就是这个:

- (void)connection:(NSURLConnection *)connection
didReceiveAuthenticationChallenge:(NSURLAuthenticationChallenge *)challenge;

所以我做了一些探索,发现在这个方法中设置了defaultCredentials:

- (AFHTTPRequestOperation *)HTTPRequestOperationWithRequest:(NSURLRequest *)urlRequest...

但不是这个,这就是被称为的人:

- (NSMutableURLRequest *)requestWithMethod:(NSString *)method
                                  path:(NSString *)path
                            parameters:(NSDictionary *)parameters

所以我的证书永远不会被设定,我不明白为什么。特别是为什么它不会使用HTTPRequest和HTTPClient连接以及所有相应的爵士乐呢?

我可能会说错方法吗?有没有办法强制它通过客户端?

或者是否有另一种更好的方法来为所有请求设置凭据?

任何帮助表示赞赏!谢谢!

0 个答案:

没有答案