문제

PHP가 Exchange 서버에 인증해야합니다. 일단 성공적으로 연결할 수 있으면 PHP에 WebDav 요청을 작성하여 Exchange 서버에서 데이터를 추출하여 웹 응용 프로그램에서 사용할 수 있어야합니다.

2003 Exchange 서버에 FBA (Forms Based Authentication)가 켜진다는 점을 제외하고는 다소 간단합니다. FBA가 켜져있는 상태에서 나는 아래 (링크 참조) 블로그 기사가 말하는 것을 할 것이라고 생각합니다. 내 문제는 ASP에 대한 지침을 PHP로 변환하는 데 도움이 필요하다는 것입니다.

http://blogs.msdn.com/webdav_101/archive/2008/12/12/webdav-fba-authentication-sample-explained.aspx

이 기사에서 그가 묘사 한 내용의 세부 사항을 이해하는 사람이 있습니까? 모든 통찰력이 도움이 될 것입니다.

필요한 경우보다 구체적인 정보 : 게시물 요청을 구성하는 방법에 대해 혼란 스러워요 (일반적으로 데이터를 양식에 게시 할 때 일반적으로 게시하는 페이지를 게시하지 않습니까? 그것은 /exchweb/bin/auth/owaauth.dll에 이르렀습니다.이게 어떻게 작동합니까?)

또한 세 번째 단계를 수행하는 방법에 대해 혼란스러워합니다.

또한 게시물 데이터를 가져 와서 PHP의 쿠키에 넣는 방법을 자세히 설명하는 데 도움이 될 수 있습니다.

제공해 주셔서 미리 감사드립니다!

도움이 되었습니까?

해결책

나는 이것을하는 가장 좋은 방법은 컬을 통한 것이라고 믿는다. (http://ca.php.net/curl)

링크 된 페이지에서 첫 번째 예제는 사용하기에 좋은 수업입니다 (다른 웹 사이트로 자동 로깅하는 데 사용했습니다).

기본적으로 keepalive (헤더)가 있어야하고 기본적으로 리디렉션해야합니다 (curl_setopt($process, CURLOPT_FOLLOWLOCATION, 1); )

WebService가 Cookie.txt를 작성/수정 한 다음 시도해 볼 수 있는지 확인해야합니다.

$cc = new cURL();
$cc->post('http://www.yourexchange.com','destination=https%3A%2F%2F' . $strServerName . '%2Fexchange%2F' . $strUserName . '%2F&username=' . $strDomain . '%5C' . $strUserName . '&password=' . $strPassword . '&SubmitCreds=Log+On&forcedownlevel=0&trusted=0'); 

위는 링크 된 페이지의 정보에서 빠른 번역으로 특수 문자가있는 경우 변수에서 urlencode ()를 사용해야 할 수도 있습니다. 위의 성공이 성공하면 사용할 수 있습니다

$page=$cc->get('http://www.yourexchange.com/?whatever=youneed');

$ 페이지에는 get의 문자열이 포함됩니다 (이 요청의 텍스트 파일에 저장된 쿠키를 보냅니다) 그러면 정규 표현식을 사용하여 필요한 것을 얻을 수 있습니다.

이것은 당신이 필요한 것에 매우 가깝게 만들어야합니다.

다른 팁

텍스트 파일의 이름이 실제로 "cookies.txt"인 것 같습니다. 이 이름으로 빈 텍스트 파일을 만들고 동일한 디렉토리에 업로드 할 수 있습니다. FTP 클라이언트에서는 권한을 설정할 수 있어야합니다. 777이 필요한 권한 코드라고 생각합니다. 권한 코드를 입력 할 수없는 경우 모든 상자를 확인하여 모든 권한을 부여하십시오.

Re : 마지막 게시물,

스크립트가 실행되는 경우 기본적으로 클라이언트이며 쿠키 파일은 쿠키를 쉽게 재사용 할 수있는 간단한 방법입니다.

체인,

예, 이것은라는 파일을 참조합니다 cookies.txt (참고 : 코드 파일과 동일한 폴더에서 "S"가있는 "쿠키") curlclass.php.

Curl은 이것을 사용하여 후속 요청에 쿠키를 저장하고 보냅니다. PHP 스크립트를 실행하는 웹 서버가 클라이언트 역할을한다는 가정에서 귀하는 정확합니다. 기본적으로 게시물을 로그인 양식으로 시뮬레이션하여 Exchange 서버에 로그인 한 다음 쿠키를 저장 한 다음 브라우저와 마찬가지로 각 요청과 함께 보냅니다.

파일을 만듭니다 cookies.txt Apache 인스턴스를 실행중인 사용자가 파일에 쓸 수 있도록 권한을 설정하십시오.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top