سؤال

أنا أستخدم مزود العضوية المدمج في ASP.NET مع تمكين أسئلة وأجوبة أمان لاستعادة كلمة المرور مقابل SQL Server 2005 DB. بالنسبة لبعض المستخدمين ، يعمل هذا بشكل جيد ويمكنهم استلام كلمات المرور الخاصة بهم. بالنسبة للآخرين ، وليس من الواضح ما الذي يفصل بين المجموعتين ، لا تتم معالجة الإجابة الأمنية بشكل صحيح. لا يهم ما إذا كانت الإجابة صحيحة أو غير صحيحة ، فإن الصفحة مجرد إعادة تحميل دون تأكيد أو رفض الطلب.

بالنسبة للأحداث ، يتم تشغيل VERIPLEANSWER ، ولكن لا يتم الإجابة على الإجابة (إذا كانت الإجابة غير صحيحة) أو إرسال mail (إذا كانت الإجابة صحيحة). قمت بتشغيل تتبع SQL خلال حالة واحدة ، ويتم استدعاء إجراء ASPNET_MEMBERSIPRISRIPS_GETUSERBYNAME ، ولكن لا يتم استدعاء أي شيء آخر بعد. أتوقع أن يتم استدعاء ASPNET_Membership_GetPassword ، والتي تمرر إجابة الأمان كمعلمة ، لكنها ليست كذلك.

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

المحلول

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

أعتقد أن السبب في أنني لم أدرك هذا من قبل هو أنني كنت أتوقع أن يؤدي ذلك إلى إثارة مشكلة فور إدخال اسم المستخدم بدلاً من دفع المستخدم إلى الإجابة على سؤال الأمان. لقد أصلحت المشكلة عن طريق التمسك بعنوان بريد إلكتروني في كل سجل عضوية.

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