HttpWebRequest وHttpWebResponse: الحفاظ على حالة تسجيل في طلب للاستعلامات متتالية

StackOverflow https://stackoverflow.com/questions/1036854

سؤال

ولدي عدد قليل HttpWebRequests وHttpWebResponses بالسلاسل معا، أيضا باستخدام CookieContainer.

والرمز يحاكي مستخدم تمر ثلاث صفحات 'أوافق' مختلفة التي وضعت من المعلومات الكعكة، تسجيل الدخول باستخدام اسم المستخدم وكلمة المرور على الرابع، والقيام ظيفة (البحث) في الخامس إعادة الاستجابة كسلسلة.

هل هناك طريقة يمكنني الحفاظ على HttpWebRequest الكائن باسم 'تسجيل في "لتجنب الذهاب من خلال هذه الخطوات في كل مرة أي مستخدم بإجراء بحث؟

هل يمكنني إعداده كما ثابتة، وإذا فارغة أو تفتقر إلى معلومات كعكه يمكن أن تعمل من خلال جميع الخطوات على خلاف ذلك لا مجرد وظيفة يتطلب من المستخدم؟ ما هو نمط جيد لهذا؟.

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

المحلول

إذا الملقم الذي يتم تسجيل الدخول إلى يستخدم المصادقة المستندة إلى الكعكة ثم يجب عليك إنشاء System.Net.CookieContainer حيث يمكنك تخزين ملفات تعريف الارتباط المصادقة. هذا هو بسيط جدا:

CookieContainer container = new CookieContainer();

// Create web request
request.CookieContainer = container;

// Create next web request
nextRequest.CookieContainer = container;

// And so on
...

ومجرد إعادة استخدام الكائن CookieContainer لجميع الأشياء الخاصة بك HttpWebRequest، والاحتفاظ بها في الذاكرة لاستخدامها لاحقا.

ووCookieContainer غير قابل للتسلسل، لذلك يمكن أن تستمر على القرص إذا كنت في حاجة إليها. وسوف تسمح لك للحفاظ على الكعكة الخاص بك (ق) حتى عند إعادة تشغيل المستخدم التطبيق الخاص بك.

وبدلا من ذلك، إذا كانت الصفحة لا تستخدم الكوكيز ولكن يخزن معرف جلسة في عنوان الموقع بدلا من ذلك، كنت بحاجة للحفاظ على تمرير طول معرف جلسة في عنوان الموقع من الصفحات التي يسيت و. مجرد إلحاق عنوان الموقع وينبغي لها أن تعمل. : -)

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