سؤال

وأنا بحاجة إلى مصادقة PHP إلى ملقم التبادل. مرة واحدة قادرا على الاتصال بنجاح إلى ذلك، أنا بحاجة لكتابة طلبات WebDAV في PHP حتى أتمكن من استخراج البيانات من الخادم الصرف واستخدامها في تطبيقات الويب.

وسيكون من بسيط إلى حد ما إلا أن ملقم Exchange 2003 تمت أشكال المصادقة المستندة إلى (FBA) قيد التشغيل. مع FBA تشغيل أعتقد أنا أفترض أن تفعل ما يلي (انظر الرابط) وتقول المادة بلوق. مشكلتي هي أنني بحاجة إلى مساعدة تحويل تعليماته لASP إلى PHP.

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

هل يفهم أحد تفاصيل ما كان يصف على هذه المادة؟ إن أي نظرة يساعد.

ومعلومات أكثر تحديدا إذا لزم الأمر: أنا في حيرة في كيفية تكوين طلب POST (أعني، عندما كنت في العادة بيانات POST إلى نموذج، لا يمكنك عادة تحميل الصفحة نشر لفي تعليماته هو؟ يقول الى ما بعد ذلك إلى /exchweb/bin/auth/owaauth.dll. كيف يعمل هذا؟)

وأنا الخلط أيضا عن كيفية القيام 3rd خطوة المدرجة: 3) يجب تعيين WebReq.KeepAlive وAllowAutoRedirect إلى True على طلب

وعلاوة على ذلك، وأنا حقا يمكن استخدام بعض المساعدة بالتفصيل كيفية اتخاذ بيانات آخر ووضعها في ملف تعريف الارتباط في PHP.

وشكرا مقدما على أي مساعدة تقدمها!

هل كانت مفيدة؟

المحلول

وأعتقد أن أفضل طريقة للقيام بذلك هو عن طريق حليقة. ( http://ca.php.net/curl )

في صفحة مرتبط، المثال الأول هو فئة جيدة لاستخدام (كنت استخدمه لتسجيل الدخول التلقائي في مواقع أخرى)

وينبغي أن يكون KeepAlive (رأس) وإعادة توجيه بشكل افتراضي (curl_setopt($process, CURLOPT_FOLLOWLOCATION, 1);)

وستحتاج لضمان خدمة ويب يمكن أن تخلق / تعديل 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');

الصفحة $ سوف تحتوي على نتيجة سلسلة من الحصول على (يرسل ملفات تعريف الارتباط المخزنة في ملف نصي على هذا الطلب) ثم يمكنك استخدام التعبير العادي للحصول على ما تحتاجه.

وهذا يجب أن تحصل على وثيقة للغاية إلى ما تحتاج إليه.

نصائح أخرى

ويبدو يدعى في الواقع ملف نصي "cookies.txt". يمكنك إنشاء ملف نصي فارغ بهذا الاسم وتحميله إلى نفس الدليل. في بروتوكول نقل الملفات العملاء الخاص بك يجب أن تكون قادرا على تعيين الأذونات، واعتقد 777 هو رمز إذن عليك. إذا كنت لا يمكن أن تدخل في المحاولة كود إذن التحقق من جميع صناديق لإعطاء كافة الأذونات.

وإعادة: آخر مشاركة،

وهذا هو الصحيح، حيث يتم تشغيل البرنامج النصي انها اساسا عميل وملف تعريف الارتباط هو طريقة بسيطة لتخزين ملفات تعريف الارتباط لإعادة استخدامها سهل.

وسلسلة،

نعم، هذا يشير إلى ملف يسمى cookies.txt (ملاحظة: "الكوكيز" مع "ليالي") في نفس المجلد مثل curlclass.php ملف التعليمات البرمجية

.

والضفيرة يستخدم هذا لتخزين وإرسال ملفات تعريف الارتباط على طلبات اللاحقة. كنت على صواب في توليكم أن خادم الويب تشغيل البرنامج النصي PHP يتصرف كعميل. في الأساس، فإنه يتم تسجيل إلى ملقم Exchange بواسطة محاكاة POST إلى نموذج تسجيل الدخول، ثم حفظ ملف تعريف الارتباط وإرسالها مع كل طلب، تماما كما متصفح شأنه.

وإنشاء cookies.txt الملف وتعيين الأذونات بحيث يمكن للمستخدم أن يشغل المثال أباتشي يمكن الكتابة إلى الملف.

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top