Ben bu ASP WebDAV FBA kimlik doğrulama örneği PHP nasıl yapabilirim?

3 Cevap php

PHP bir değişim sunucusunda kimlik doğrulaması olması gerekir. Edebilmek başarıyla bağlanmak için bir kez, o yüzden döviz sunucudan veri ayıklamak ve bir web uygulamasında kullanabilir PHP WebDAV istekleri yazmak gerekir.

Bu Exchange 2003 sunucu Formlar olduğunu Tabanlı Kimlik Doğrulama (FBA) dışında biraz basit olurdu döndü. FBA açıkken ben (bağlantıya bakınız) ne aşağıda yapmak varsayalım inanamıyorum blog makale diyor. Benim sorunum PHP içine ASP için onun talimatları dönüştürme yardıma ihtiyacım olduğunu.

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

Herkes o bu makalede açıklayan neler ayrıntılarını anlamak mı? Herhangi bir fikir yardımcı olacaktır.

Daha spesifik bilgi gerekirse: Ben normalde forma POST veri, genellikle onun talimatlarına In sayfayı ilanıyla yük olmadığında POST isteği (Yani, nasıl yapılandırılacağı konusunda kafam karıştı o POST diyor kendisine / exchweb / bin / auth / owaauth.dll. Bu nasıl çalışır?)

3) WebReq.KeepAlive ve AllowAutoRedirect istek üzerine true olarak ayarlanmış olmalıdır: Ben de listede 3. adımı olarak nasıl karıştı.

Bunun üzerine, ben gerçekten sonrası veri almak ve PHP çerez koymak için nasıl ayrıntılı biraz yardım kullanabilirsiniz.

Herhangi bir yardım için şimdiden teşekkür ederiz sağlanan!

3 Cevap

Bunu yapmak için en iyi yoldur düzelene üzerinden olduğuna inanıyorum. (http://ca.php.net/curl)

Bağlantılı sayfasında, ilk örnek kullanmak için iyi bir sınıf (diğer web sitelerine otomatik olarak giriş için kullanılan ettik)

Bu Keepalive (header) ve varsayılan olarak yönlendir gerekir (curl_setopt($process, CURLOPT_FOLLOWLOCATION, 1);)

Sen webcoder deneyin cookie.txt değiştirmek / oluşturmak sağlamak gerekir:

$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');

Özel karakter varsa, yukarıda size bağlı sayfadaki bilgi hızlı bir çevirisidir, sizin değişkenlere) (urlencode kullanmanız gerekebilir. Yukarıdaki başarıyla çalıştığını bir kez kullanabilirsiniz

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

$ Sayfa get (bu istek üzerine bir metin dosyasında saklanır çerez gönderir) o size ihtiyacınız olanı almak için normal bir ifade kullanabilirsiniz gelen dize sonucunu içerecektir.

Bu neye ihtiyacınız için size çok yakın almalısınız.

Metin dosyası aslında "cookies.txt" adlı gibi görünüyor. Bu isimde boş bir metin dosyası oluşturun ve aynı dizine yükleyebilirsiniz. Ftp istemci izinlerini ayarlamak gerekir, ben 777 ihtiyacınız olacak izni kod olduğuna inanıyorum. Sadece izin kodunu girin yapamıyorsanız tüm izinleri vermek için tüm kutuları kontrol deneyin.

re: son yazılan,

komut temelde bir istemci ve cookie dosyası yeniden kullanımı kolay için çerez depolama basit bir yoludur çalışır nerede, doğrudur.

Zincir,

Evet, bu cookies.txt adlı bir dosyaya atıfta: sizin kod dosyası ile aynı klasörde (not bir "s" ile "çerezler") curlclass.php.

cURL izleyen isteklerde çerezleri saklamak ve göndermek için kullanır. Sen PHP komut dosyası çalıştıran web sunucusu istemcisi gibi davranan sizin varsayım doğru; temelde, giriş formuna bir POST simüle ederek, Exchange sunucusuna oturum ve sonra çerez tasarrufu ve sadece bir tarayıcı olarak, her isteği ile bu olurdu gönderme.

Dosyayı cookies.txt oluşturun ve Apache örneğini çalıştıran kullanıcı dosyaya yazabilirsiniz böylece izinlerini ayarlayın.