عمود الصوت دعم.NET ASP
مصادقة النماذج استكشاف الأخطاء وإصلاحها
لتخصيص هذا العمود إلى احتياجاتك، نحن نريد دعوة منك إرسال الأفكار حول مواضيع تهم لك والمسائل التي تحتاج إلى مشاهدة الموجهة في المستقبل مقالات قاعدة المعارف والأعمدة "الصوتية دعم". يمكنك إرسال أفكارك وملاحظات باستخدام نموذج طلب لذلك . يوجد أيضا ارتباط إلى النموذج في أسفل هذا العمود.
مرحبا بكم في عمود الصوت دعم ASP.NET! اسمي جيري الأورمان. لقد كنت مع Microsoft أكثر من 5 سنوات، وقضيت معظم وقتي تركز على التكنولوجيات ذات الصلة ويب مثل Microsoft FrontPage وتقنيات Microsoft SharePoint جديدة. لقد أمضيت العام الماضي في العمل مع Microsoft ASP.NET كمهندس دعم. هذا الشهر في عمود "الصوت دعم"، سوف توضح كيفية استكشاف أخطاء "مصادقة النماذج" في Microsoft ASP.NET.
مصادقة النماذج استكشاف الأخطاء وإصلاحها
عند استخدام "مصادقة النماذج" في أحد تطبيقات ASP.NET، فقد تجد أنه الضرورية لاستكشاف مشكلة التي تحدث عند إعادة توجيه المستخدم إلى صفحة تسجيل الدخول عشوائياً. قد تحدث هذه المشكلة في عالم مثالي، بطريقة تسمح بسهولة إرفاق مصحح أخطاء والتقاط المشكلة. في بيئات الإنتاج، ومع ذلك، هذه هي نادراً ما الحالة. لاستكشاف الأخطاء وإصلاحها عشوائية مثل هذه، تحتاج لتسجيل المعلومات المتعلقة بالمشكلة حتى يمكنك تضييق السبب الجذري.
سيتم تناوله في هذا العمود بإيجاز مفهوم "مصادقة النماذج". ثم سوف نبحث في السيناريوهات التي تؤدي إلى مستخدم تتم إعادة توجيهك إلى صفحة تسجيل الدخول وكيفية التقاط البيانات المتعلقة بعزل المشكلة. سيتم تناوله أيضا في كيفية تطبيق واجهة إيهتبمودولي لتسجيل معلومات "مصادقة النماذج".نظرة عامة حول مصادقة النماذج
عند مصادقة مستخدم إلى موقع ويب باستخدام "مصادقة النماذج"، يقوم الخادم بإنشاء ملف تعريف ارتباط. قيمة ملف تعريف الارتباط تذكرة مصادقة نماذج مشفرة. يتم تمرير ملف تعريف الارتباط إلى الملقم في كل طلب للتطبيق، وفئة فورمساوثينتيكاتيونمودولي يفك تشفير قيمة ملف تعريف الارتباط وتحديد ما إذا كان المستخدم صحيحة أم لا.
بشكل افتراضي، يتم إضافة الفئة فورمساوثينتيكاتيونمودولي في الملف Machine.config. الفئة فورمساوثينتيكاتيونمودولي بإدارة عملية FormsAuthentication. المثال التالي إدخال من ملف Machine.config:<httpModule> …other modules…
<add name="FormsAuthentication" type="System.Web.Security.FormsAuthenticationModule" /> …other modules… </httpModule>
حركة مرور HTTP عام لمصادقة باستخدام "مصادقة النماذج" مشابهاً لما يلي:
-
يرسل العميل HTTP GET إلى Default.aspx. يتم إرسال لا ملف تعريف ارتباط مصادقة النماذج.
-
يرسل الملقم استجابة 302 (إعادة توجيه) ل Login.aspx.
-
يرسل العميل عملية نشر HTTP إلى Login.aspx. يتضمن معلومات تسجيل الدخول.
-
يرسل الملقم استجابة 302 (إعادة توجيه) إلى Default.aspx. يتم تضمين ملف تعريف ارتباط مصادقة النماذج.
-
يرسل العميل HTTP GET إلى Default.aspx. يتضمن هذا ملف تعريف ارتباط مصادقة النماذج.
لمزيد من المعلومات حول تطبيق واستخدام مصادقة النماذج، قم بزيارة مواقع ويب MSDN التالي:
http://msdn2.microsoft.com/en-us/library/7t6b43z4.aspx
http://msdn2.microsoft.com/en-us/library/system.web.security.formsauthentication(vs.71).aspx
http://msdn2.microsoft.com/en-us/library/system.web.security.formsauthenticationticket(vs.71).aspxلمزيد من المعلومات حول مشاركة ملفات تعريف ارتباط مصادقة النماذج، قم بزيارة موقع ويب ASP.NET:
http://quickstarts.asp.net/QuickStartv20/aspnet/doc/security/formsauth.aspx
أسباب قد إعادة توجيه مستخدم إلى صفحة تسجيل الدخول
يتم فقدان ملف تعريف ارتباط مصادقة النماذج
السيناريو 1
في هذا السيناريو، مستخدم بتسجيل الدخول إلى موقع ويب. عند نقطة ما، يرسل طلب العميل إلى الخادم، و الفئة فورمساوثينتيكاتيونمودولي عدم تلقي ملف تعريف ارتباط. يمكنك تحديد إذا طلب مستخدم لا يحتوي على ملف تعريف الارتباط بتمكين ملفات تعريف الارتباط التسجيل في خدمات معلومات إنترنت (IIS) ل Microsoft. للقيام بذلك، اتبع الخطوات التالية:
-
فتح وحدة تحكم إدارة Microsoft IIS (MMC).
-
زر الماوس الأيمن فوق موقع ويب ومن ثم انقر فوق
خصائص. -
انقر فوق علامة التبويب موقع ويب ومن ثم انقر فوق تمكين التسجيل.
-
تأكد من تنسيق سجل W3C الموسع ملف بتنسيق السجل.
-
انقر فوق خصائص.
-
انقر فوق علامة التبويب خيارات متقدمة ، ومن ثم انقر فوق
خصائص موسعة. -
ضمن خصائص موسعة، انقر لتحديد خانة الاختيار Cookie(cs(Cookie)) و Referer (cs(Referer)) خانة الاختيار.
بعد حدوث هذه المشكلة، حدد العميل الذي كان المشكلة وعنوان IP للعميل. تصفية سجل IIS على عنوان IP للعميل، وعرض العمود <كوكي>.
ملاحظة: يمكنك استخدام "محلل سجل" تحليل سجلات IIS. لتحميل "محلل السجل"، قم بزيارة موقع Microsoft التالي على الويب:http://www.microsoft.com/downloads/details.aspx?FamilyID=890cd06b-abf8-4c25-91b2-f8d975cf8c07بعد قائمة الطلبات الواردة من هذا المستخدم معينة، ابحث عن الطلبات إلى صفحة تسجيل الدخول. تعرف توجيههم إلى هذه الصفحة، وأردت مشاهدة الطلبات قبل حدوث إعادة توجيه. إذا كنت ترى شيئا مشابهة لما يلي، العميل أما لم يرسل ملف تعريف الارتباط أو تمت إزالة ملف تعريف الارتباط على شبكة الاتصال بين العميل والخادم. هذا هو تسجيل الدخول الأولى.
الأسلوب |
الصفحة |
الاستجابة |
ملفات تعريف الارتباط |
الحصول على |
/Default.aspx |
302 (إعادة توجيه) |
لا يوجد ملفات تعريف الارتباط |
الحصول على |
/Login.aspx |
200 (النجاح) |
لا يوجد ملفات تعريف الارتباط |
الوظيفة |
/Login.aspx |
302 (إعادة توجيه) |
لا يوجد ملفات تعريف الارتباط |
الحصول على |
/Default.aspx |
200 (النجاح) |
.ASPXAUTH |
الحصول على |
/SomePage.aspx |
302 (إعادة توجيه) |
لا. كوكي أسبكساوث |
هذه طلبات أخرى، ثم طلب إلى صفحة على الموقع بدون. ملف تعريف الارتباط أسبكساوث.
الأسلوب |
الصفحة |
الاستجابة |
ملفات تعريف الارتباط |
الحصول على |
/SomePage.aspx |
302 (إعادة توجيه) |
لا. كوكي أسبكساوث |
الحصول على |
/Login.aspx |
200 (النجاح) |
لا. كوكي أسبكساوث |
الوظيفة |
/Login.aspx |
302 (إعادة توجيه) |
لا. كوكي أسبكساوث |
الحصول على |
/SomePage.aspx |
200 (النجاح) |
.ASPXAUTH |
ملاحظة: أول طلب من المستخدم غير المحتمل أن يكون ملف تعريف ارتباط مصادقة نماذج إلا إذا كنت تقوم بإنشاء ملف تعريف ارتباط دائم. سجل IIS فقط ستظهر لك ملفات تعريف الارتباط التي وردت في الطلب. سيتم بناء على الطلب أول طلب للحصول على ملف تعريف ارتباط مصادقة النماذج بعد محاولة تسجيل دخول ناجح.
السيناريو 2
يمكن أن يكون ملف تعريف ارتباط مصادقة النماذج المفقودة عند تجاوز حد ملف الارتباط للعميل. في Microsoft Internet Explorer، يوجد حد ال 20 ملف ارتباط. بعد إنشاء ملف تعريف الارتباط 20 على الكمبيوتر العميل، يتم إزالة ملفات تعريف الارتباط السابق من مجموعة العميل. إذا كانت. يتم إزالة ملف تعريف الارتباط أسبكساوث، سيعاد توجيه المستخدم إلى صفحة تسجيل الدخول عند معالجة الطلب التالي. يمكن استكشاف هذين السيناريوهين بنفس الطريقة. النظر في الطلب قبل إعادة التوجيه إلى صفحة تسجيل الدخول. إذا طلب إلى هذه الصفحة بإنشاء ملفات تعريف الارتباط، سيكون هذا شيء للتحقيق. لمزيد من المعلومات، انقر فوق رقم المقالة التالية لعرضها في "قاعدة معارف Microsoft":
حدود حجم ملف تعريف الارتباط في برنامج Internet Explorer و 306070 رقم يمكنك استخدام Fiddler إظهار رؤوس HTTP التي يتم إرسالها إلى العميل. بعد التقاط حركة مرور، انقر نقراً مزدوجاً فوق طلب, وفوق رؤوس لمشاهدة مجموعة ارتباط. تتبع تسجيل دخول ناجح، سوف تشاهد ارتباط مجموعة ردا تسجيل دخول ناجح. لتنزيل Fiddler، قم بزيارة موقع ويب Fiddler التالية:
السيناريو 3
بعد الطلب يترك العميل، هناك الطبقات المختلفة التي يمكن أن تؤثر على الحزم التي يتم إرسالها. لتحديد إذا كان جهاز شبكة اتصال بإزالة ملف تعريف الارتباط، لديك التقاط تتبع شبكة اتصال على الخادم والعميل، ثم ابحث في النص الأساسي لطلب ملف تعريف الارتباط. تحتاج إلى النظر في طلب العميل للتأكد من أنه تم إرسال ملف تعريف الارتباط، والتحقق من تتبع الخادم للتأكد من أن الخادم تلقي ملف تعريف ارتباط. طلب العميل وهذا طلب GET بعد المصادقة على المستخدم. يتم تمييز المعلومات تذكرة مصادقة النماذج باللون الأزرق. وهذا يؤكد أن ترك ملف تعريف الارتباط معلومات العميل. عند استخدام أداة التقاط شبكة اتصال، مثل Netmon، ترى حركة المرور التي مرت المحول فعلياً.
47 45 54 20 68 74 74 70-3a 2f 2f 6c 6f 63 61 6c GET http://local68 6f 73 74 2f 46 6f 72-6d 73 41 75 74 68 4c 6f host/FormsAuthLo
67 54 65 73 74 2f 57 65-62 46 6f 72 6d 31 2e 61 gTest/WebForm1.a 73 70 78 20 48 54 54 50-2f 31 2e 31 0d 0a 41 63 spx HTTP/1.1..Ac 63 65 70 74 3a 20 69 6d-61 67 65 2f 67 69 66 2c cept: image/gif, …Other headers of the GET request… 63 68 65 0d 0a 43 6f 6f-6b 69 65 3a 20 2e 41 53 che..Cookie: .AS 50 58 41 55 54 48 3d 33-43 45 46 39 42 39 41 30 PXAUTH=3CEF9B9A0 43 33 37 41 44 46 36 33-45 36 42 44 33 37 42 36 C37ADF63E6BD37B6 39 43 44 41 32 35 30 30-30 46 38 30 37 32 38 46 9CDA25000F80728F 35 31 43 39 35 36 36 44-31 34 43 35 34 31 34 35 51C9566D14C54145 38 31 43 39 33 45 32 41-30 31 44 44 43 44 45 46 81C93E2A01DDCDEF 32 34 41 31 37 34 32 39-34 31 30 43 30 39 37 34 24A17429410C0974 42 33 45 43 42 30 36 34-32 32 38 45 33 35 33 39 B3ECB064228E3539 39 41 38 32 32 42 33 42-39 33 36 44 46 30 38 46 9A822B3B936DF08F 42 41 42 44 33 45 31 30-32 44 30 30 32 31 30 43 BABD3E102D00210C 32 45 31 33 39 38 30 37-39 42 32 33 35 32 39 46 2E1398079B23529F 34 46 35 44 37 34 41 3b-20 50 72 6f 66 69 6c 65 4F5D74A; Profile 3d 56 69 73 69 74 6f 72-49 64 3d 62 32 34 65 62 =VisitorId=b24eb
طلب الخادم
عند النظر طلب الوصول إلى الملقم، تريد التأكد من أن تلقي نفس المعلومات التي قام العميل بإرسال الملقم. إذا لم يتلق الخادم على نفس المعلومات، تحتاج إلى الاستقصاء عن الأجهزة الأخرى الموجودة على الشبكة لتحديد حيث تمت إزالة ملف تعريف الارتباط. ملاحظة: كما كانت هناك حالات من عوامل تصفية ISAPI إزالة ملفات تعريف الارتباط. إذا تأكدت من أن تلقي ملقم ويب ملفات تعريف الارتباط، ولكن ملف تعريف الارتباط مدرجة في سجلات IIS، تحقق من عوامل تصفية ISAPI. قد تضطر إلى إزالة عوامل التصفية لمعرفة ما إذا كان قد تم حل المشكلة.مهلة البطاقة مصادقة النماذج
يكون السبب الشائعة الأخرى لمستخدم بإعادة توجيه إذا انتهت صلاحية البطاقة مصادقة النماذج. يمكنك تذكرة مصادقة النماذج مهلة بطريقتين. يحدث السيناريو الأول إذا استخدمت صلاحية مطلق. مع انتهاء صلاحية مطلق، تذكرة المصادقة وتنتهي عند انتهاء مدة الصلاحية. على سبيل المثال، يمكنك تعيين انتهاء صلاحية مدة 20 دقيقة، ويقوم مستخدم بزيارة الموقع في الساعة 2:00 مساء. سيتم إعادة توجيه المستخدم إلى صفحة تسجيل الدخول إذا قام المستخدم بزيارة الموقع بعد الساعة 2:20.
إذا كنت تستخدم تجديد انتهاء مدة الصلاحية، السيناريو معقد أكثر قليلاً. يتم تحديث ملف تعريف الارتباط أو تذكرة الناتج إذا يقوم المستخدم بزيارة الموقع بعد وقت انتهاء صلاحية النصف. على سبيل المثال، يمكنك تعيين انتهاء صلاحية مدة 20 دقيقة باستخدام تجديد انتهاء مدة الصلاحية. يقوم مستخدم بزيارة الموقع في الساعة 2:00 مساء، ويتلقى المستخدم ملف تعريف ارتباط التي تم تعيينها بحيث تنتهي صلاحيتها في الساعة 2:20 بعد الظهر. يتم تحديث انتهاء الصلاحية فقط إذا قام المستخدم بزيارة الموقع بعد الساعة 2:10. إذا كان المستخدم يقوم بزيارة الموقع في الساعة 2:09، لا يتم تحديث البطاقة لأنه لم يتجاوز نصف وقت انتهاء الصلاحية. إذا كان المستخدم ثم ينتظر 12 دقيقة، زيارة الموقع في الساعة 2:21، ستنتهي صلاحية البطاقة. يتم إعادة توجيه المستخدم إلى صفحة تسجيل الدخول. أحد الطرق لنهج هذا النوع من المشكلة تسجيل معلومات ملف تعريف الارتباط وتذكرة مصادقة النماذج. وبهذه الطريقة، يمكنك أن ترى إذا تم تلقي ملف تعريف الارتباط من قبل IIS والقيم. يمكنك القيام بذلك بكتابة هتبمودولي، ثم توصيل هذه الوحدة النمطية في طلب خط الأنابيب. لا يجب تعديل التعليمات البرمجية للتطبيق الخاص بك للحصول على المعلومات التي تحتاجها. نموذج مرفق يعمل في.NET Framework 2.0 و Microsoft.NET Framework 1.1 وتعليقات خلال. يشتمل النموذج على الملفات التالية:ملاحظة سوف توفر وصلة تحميل للتعليمات البرمجية التي تم توفيرها في ملف FormsAuthLogger.zip. أنا أشير إلى المناطق الرئيسية فيما يلي:طلب لذلك .
كما دائماً، لا تتردد في تقديم أفكار حول مواضيع تريد التصدي لها في المستقبل الأعمدة أو في استخدام قاعدة المعارف نموذج