2012-09-27 4 views
1

이 코드 줄은 어떻게 작동합니까?이 코드 줄은 어떻게 작동합니까? AFNetworking/CFURLCopyPassword

URL을 수정하려고하는데 Apple 설명서를 보면 비밀번호/URL을 어디에 넣어야하는지에 대해서는별로 알려주지 않습니다.

NSString *password = [(NSString *)CFURLCopyPassword((CFURLRef)[self.request URL]) autorelease]; 

이 코드 줄은 AFNetworking 프레임 워크의 일부이므로 인증을 통과 할 수 있습니다.

URL이 어떻게 암호를 올바르게 잡아낼 수 있도록 구조화되어 있다고 가정합니까? 아직 운이 없다.

나는 그것을 앞면 username : password에 넣으려고했으나 올바르지 않습니다. 비밀 번호가 잡히지 않습니다.

기본적으로 http://userid:[email protected]/은이 방법을 완전히 우회하며 내가하고 싶은 것이 아닙니다.

답변

1

이 인증 방법에 대한 간단한 설명은 here입니다. 자세한 내용은 URL을 설명하는 적절한 표준을 찾아야합니다. 페이지가 나중에 사용할 수없는 경우

URL 샘플 : ftp://username:[email protected]/

https://developer.apple.com/library/ios/#documentation/Foundation/Reference/NSURLConnectionDelegate_Protocol/Reference/Reference.html

대리자가 기본 구현이 사용되는이 방법을 구현하지 않습니다. 상기 요청에 대한 유효한 신임 는 URL의 일부로서 제공되고, 또는 NSURLCredentialStorage 에서 [챌린지 발신자]에서 사용할 경우 는 ** useCredential 전송된다 forAuthenticationChallenge :을 신임로. 에 챌린지에 자격증 명이 없거나 자격 증명이 에 대한 액세스 권한을 부여하지 못하면 continueWithoutCredentialForAuthenticationChallenge :는 이 [챌린지 발신자]로 대신 전송됩니다.

+0

예, 이전에 시도했지만 올바른 형식이 아닙니다. 그것은 마치 인증 방법을 모두 무시하고 나를 로그인하는 것처럼 보이게하는 것입니다. 보안이 맞지 않는다고 생각합니다. – Alan

+0

@Alan Shih 나는 이것이 AFNetworking에서 어디에 사용되는지 모른다. 그러나이 코드 라인을'[NSURL URLWithString : @ "ftp : // username : password @ hostname /"]'과 비교해 보면'password'가 반환됩니다. 'AFNetworking' 아키텍처를 이해하는 것은 한 줄을 분석하는 것보다 조금 어렵습니다. 'username : password' 부분은 어떤 경우 프레임 워크 자체에 의해 추가 될 수도 있습니다. –

+0

그것은 NSURLCONnection 대리자 메서드의 일부입니다 - '- (void) connection : (NSURLConnection *) didReceiveAuthenticationChallenge :(NSURLAuthenticationChallenge *) challenge' 예 ... 인증을 얻으려고합니다. – Alan

1

기본적으로 - 당신이 그것을이있는 경우는 URL의 암호 부분을 반환하는 기능이 형식의 URL을 전달하면 일부 URL이 포함 된 사용자 이름과 암호

http://userid:[email protected]/ 

로 구성되어 있습니다 올바른 형식 또는 빈 문자열 (CFSTR("")) (그렇지 않은 경우)

동일한 방법으로 CFURLCopyUserName 기능으로 사용자 ID를 가져올 수 있습니다.

+0

그래, 나는 그것을 시도했지만 인증 방법을 모두 무시할 것으로 보인다. 프레임 워크에 해당 코드 행을 포함하는 메소드로 이동하지 않습니다. – Alan

관련 문제