كيف لا تستخدم سؤال أمان عضوية ASP.NET وجواب لاستعادة كلمة المرور المخصصة؟

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

سؤال

لا أريد الحصول على ميزة سؤال الأمان والإجابة ميزة مزود عضوية ASP.NET، لكنني أرغب في تمكين صفحة كلمة مرور ضائعة / نسيت.

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

لقد قمت بإنشاء جدول مخصص لتتبع مثل هذه الطلبات، والمفتاح العشوائي المعين للطلب وكذلك تاريخ انتهاء الصلاحية على الطلب. ومع ذلك، في كتابة التعليمات البرمجية لإعادة تعيين كلمة المرور في الواقع، أدركت أنه لا يبدو أنه هناك طريقة تقوم بعمل شيء مثل ResetPassword (البريد الإلكتروني أو NewPassword) دون الحاجة إلى استخدام Security Q & Bit قليلا (لا أملك).

هل هناك أي طريقة لإعادة تعيين كلمة مرور المستخدم عبر وظيفة عضوية مدمجة؟

إذا لم يكن الأمر كذلك، فماذا أحتاج إلى القيام بذلك؟

شكرا مقدما لأي مساعدة. -NISSAN.

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

المحلول

ماذا انتهى بي الأمر كان ما يلي

public string ResetPassword(string email)
        {
            var m_userName = Membership.GetUserNameByEmail(email);
            var m_user = Membership.GetUser(m_userName);
            return m_user.ResetPassword();
        }

ثم أضفت طريقة جديدة لاستخدام هذه القيمة لتغيير كلمة المرور

public bool ChangeLostPassword(string email, string newPassword)
    {
        var resetPassword = ResetPassword(email);
        var currentUser = Membership.GetUser(Membership.GetUserNameByEmail(email), true);
        return currentUser.ChangePassword(resetPassword, newPassword);

    }

نصائح أخرى

لماذا لا تغير هذه الخيارات في Web.config؟

         enablePasswordRetrieval="false"
         enablePasswordReset="true"
         requiresQuestionAndAnswer="false"

في

<membership>
   <providers>
      <clear/>
      <add name="AspNetSqlMembershipProvider" ...
      ..........
مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top