views:

792

answers:

2

Hi All,

In my iPhone app, i am trying to display an image on iphone from my server, which needs authorization. I am trying to use NSURLConnection to get the image, but it is not asking me for the user credentials. i.e it is not at all going to didReceiveAuthenticationChallenge method. Can anyone help me with this issue.

Thanks, nbojj

A: 

Since your not posting any code its hard to tell. I would double check and make sure that you have the delegate member set properly on the NSURLConnection. If that is not the issue try using an HTTP debugger and make sure that the URL is actually triggering the authentication request.

Lounges
+3  A: 

You can compute the necessary Authorization header yourself and manually apply it to the outgoing NSURLRequest before creating the NSURLConnection, as in:

NSMutableURLRequest *someURLReq = ...
NSString *auth = ...
[someURLReq setValue:auth forHTTPHeaderField:@"Authorization"];

The content of the auth in the case of HTTP basic authentication, using Dave Dribin's base64 NSData category would be:

NSString *username = ...
NSString *password = ...
NSString *combo = [NSString stringWithFormat:@"%@:%@", username, password];
NSData *comboData = [NSData dataWithBytes:[combo UTF8String] length:combo.length];
NSString *auth = [NSString stringWithFormat:@"Basic %@", [comboData encodeBase64]];

Note that this is not encryption, the password is plain text for all practical purposes, and will be sniffed unless you're on an SSL connection.

duncanwilcox
Hi..Thanks for your reply....I have a web application hosted on IIS with windows authentication. Now i am trying to access pages on that web app. With your code it is not working. it is returning unauthourized error. do i need to use NTML/Digest auth mode.
nbojja