Instance Method

URLSession:didReceiveChallenge:completionHandler:

Requests credentials from the delegate in response to a session-level authentication request from the remote server.

Declaration

- (void)URLSession:(NSURLSession *)session didReceiveChallenge:(NSURLAuthenticationChallenge *)challenge completionHandler:(void (^)(NSURLSessionAuthChallengeDisposition disposition, NSURLCredential *credential))completionHandler;

Parameters

session

The session containing the task that requested authentication.

challenge

An object that contains the request for authentication.

completionHandler

A handler that your delegate method must call. This completion handler takes the following parameters::

  • disposition—One of several constants that describes how the challenge should be handled.

  • credential—The credential that should be used for authentication if disposition is NSURLSessionAuthChallengeUseCredential, otherwise NULL.

Discussion

This method is called in two situations:

  • When a remote server asks for client certificates or Windows NT LAN Manager (NTLM) authentication, to allow your app to provide appropriate credentials

  • When a session first establishes a connection to a remote server that uses SSL or TLS, to allow your app to verify the server’s certificate chain

If you do not implement this method, the session calls its delegate’s URLSession:task:didReceiveChallenge:completionHandler: method instead.

See Also

Handling Authentication Challenges

NSURLSessionAuthChallengeDisposition

Constants passed by session or task delegates to the provided continuation block in response to an authentication challenge.