HTTP 다이제스트 인증을 사용하는 서버와 통신하는 앱이 있습니다.iPhone에서 HTTP 다이제스트 인증 사용
아이폰의 '세션'관리는 우리에게 꽤 "블랙 박스"라고 생각합니다. 프레임 워크가 http 세션을 처리/지속하는 방법을 볼 수 없다는 것이 사실입니까?
내가 여기에서 어렴풋이 드는 사람이라면 iPhone에서 HTTP 다이제스트 인증을 처리하는 방법을 설명해 줄 수 있습니까?
내 기본 실행을 통해입니다 :
- 는 서버가 401
- 클라이언트가 생성하고 자격을 계속 전송
- 보안 URL에 대한 요청을 확인하고 다시 서버로 전달합니다
- 서버가 신임을 검증하고, 검증되면 요청을 완료하고, 그렇지 않으면 401을 보냅니다.
- 은 ........ 후속 요청이 URL을 다시
- 서버 요청 권한을 확보 할 수 있도록
이 하나의 요청을 작동하지만 추가, 후속 요청을 할 경우, 서버 요청 권한 부여 다시. 서버가 특정 사용자에 대한 세션을 유지했지만 iPhone이 어떤 이유로 인해 동일한 세션 내에서 요청을 보내지 않습니다 ... 따라서 서버는 인증 객체를 버리고 클라이언트가 될 때마다 새 객체를 만들어야합니다 보안 URL을 요청합니다.
이것은 올바른 동작이 아니란 것 같습니다.
우리는 브라우저가이 상황에서 작동하는 방식을 보면 :
- 브라우저, 서버가 지속, 401
- 브라우저를 보냅니다 자격 증명에 대한 사용자 메시지를 표시
- 보안 URL에서 데이터를 요청하는 서버에 전달
- 서버가 자격 증명을 확인하고 데이터가 확인되면 반환하며 그렇지 않은 경우 401을 보냅니다.
- 보안 URL에 대한 이후 요청은 브라우저가 세션을 관리하기 때문에 자격 증명을 요구하지 않습니다.
NSURLCredential을 만들고 NSURLCrendtialStorage 내에 유지합니다. 그런 다음 응용 프로그램에서 'didReceiveAuthenticationChallenge'를 받으면 저장소에서 자격 증명을 검색하고 다시 전달하여 자격 증명을 만듭니다 (첫 번째 요청시).
도움을 주시면 감사하겠습니다. 감사합니다. .
Jasarien, 나는 이것이 당신을 올바른 길로 인도한다는 의미로 진드기를 가지고 있습니까? (내 호기심에 대한, 그리고 아마도 다른 사람이 동일한 문제를 찾는 데 도움이 될 수 있음). –