[iOS-Foundation] Networking Authentication
WWW-Authenticate를 통해 클라이언트의 신분을 검증할 수 있다.URL Loading System을 사용하여 네트워크 요청을 보낼 때 위의 경우 URLSession 객체의 에이전트URLSession:didReceiveChallenge:completionHandler: 또는 URLSession:task:didReceiveChallenge:completionHandler: 메서드가 호출됩니다.또한 SSL/TLS 프로토콜에서는 클라이언트가 악수 단계에서 서버 인증서를 검증할 때 상기 프록시 방법을 호출합니다.프록시 방법 중의 매개 변수challenge는
NSURLAuthenticationChallenge 대상으로 이 종류는 검증을 요청하는 정보를 봉인합니다.따라서 일반적인 상황에서 응용은 이 유형의 대상을 스스로 만들 필요가 없고 사용자 정의 프로토콜을 사용할 때만 주동적으로 만들어야 할 수 있다.NSURLAuthenticationChallenge
NSURLAuthenticationChallenge 클래스에서 가장 중요한 속성은
protectionSpace입니다. 이 속성은 NSURLProtectionSpace의 실례입니다. 하나NSURLProtectionSpace의 대상은 속성host, isProxy, port, protocol, proxyType과 realm을 통해 검증을 요청한 서버 측의 범위를 대표합니다.NSURLProtectionSpace류의 authenticationMethod 속성은 서비스 측의 검증 방식을 가리키며 가능한 값은NSURLAuthenticationMethodDefault
//   HTTP  ,  NSURLCredential  。
NSURLAuthenticationMethodHTTPBasic
//   HTTP  , ,  NSURLCredential  。
NSURLAuthenticationMethodHTTPDigest
//   URL Loading System,  web  。
NSURLAuthenticationMethodHTMLForm
NSURLAuthenticationMethodNegotiate
NSURLAuthenticationMethodNTLM
//  
NSURLAuthenticationMethodClientCertificate
//  
NSURLAuthenticationMethodServerTrust
protectionSpace 외에도 NSURLAuthenticationChallenge 에는 다음과 같은 속성이 포함됩니다.proposedCredential, 이름에서 알 수 있듯이 추천하는 인증서는 이 속성이 NSURLCredential 대상이라는 것을 설명한다.protectionSpace에 근거하여 [NSURLCredentialStorage sharedCredentialStorage]에서 얻은 것일 수 있습니다.이전에 검증에 실패한 인증서일 수도 있습니다.클라이언트가 서비스 측이 제공한 인증서를 검증하려면 이 속성은 서버가 제공한 인증서를 대표합니다.failureResponse, 지난번 검증에 실패한 NSURLResponse 대상을 가리킨다.previousFailureCount, 이전에 검증에 실패한 횟수.sender, 실현NSURLAuthenticationChallengeSender 프로토콜의 대상은 일반적으로 NSURLProtocol의 실례이다. 구버전NSURLConnection과NSURLDownload에서 프록시 방법은completionHandler 파라미터를 제공하지 않고 NSURLAuthenticationChallengeSender 프로토콜 정의를 호출하는 관련 방법이 필요하다.error, 지난번 검증에 실패한 NSError 대상을 가리킨다.NSURLSessionAuthChallengeDisposition
NSURLSession의 에이전트 방법에서 상응하는 논리를 실행한 후 에이전트 방법의 block 매개 변수completionHandler를 호출하여 시스템이 검증을 어떻게 처리하는지 알려야 한다.이 블록은 두 개의 매개 변수, NSURLSessionAuthChallengeDisposition 유형의disposition을 전송해야 하며, 처리 방식을 설명하고, 다른 매개 변수는 대응하는 NSURLCredential 대상이다.NSURLSessionAuthChallengeDisposition 가능한 값은 다음과 같습니다.//   credential  
NSURLSessionAuthChallengeUseCredential
//  , ,  credential
NSURLSessionAuthChallengePerformDefaultHandling
//   protectionSpace  ,  credential
NSURLSessionAuthChallengeRejectProtectionSpace
//  ,  credential
NSURLSessionAuthChallengeCancelAuthenticationChallenge
NSURLCredential
disposition 값이
NSURLSessionAuthChallengeUseCredential 이면 NSURLCredential 객체를 제공해야 합니다.세 가지 유형의 Credential을 만들 수 있습니다.//   protectionSpace   authenticationMethod   NSURLAuthenticationMethodHTTPBasic   NSURLAuthenticationMethodHTTPDigest  
+ credentialWithUser:password:persistence:
- initWithUser:password:persistence:
//   protectionSpace   authenticationMethod   NSURLAuthenticationMethodClientCertificate  
+ credentialWithIdentity:certificates:persistence:
- initWithIdentity:certificates:persistence:
//   protectionSpace   authenticationMethod   NSURLAuthenticationMethodServerTrust  
+ credentialForTrust:
- initWithTrust:
또한 NSURLCredentialStorage를 통해 관리할 수 있습니다.
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
다양한 언어의 JSONJSON은 Javascript 표기법을 사용하여 데이터 구조를 레이아웃하는 데이터 형식입니다. 그러나 Javascript가 코드에서 이러한 구조를 나타낼 수 있는 유일한 언어는 아닙니다. 저는 일반적으로 '객체'{}...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.