كيف لا تستخدم سؤال أمان عضوية ASP.NET وجواب لاستعادة كلمة المرور المخصصة؟
-
06-09-2019 - |
سؤال
لا أريد الحصول على ميزة سؤال الأمان والإجابة ميزة مزود عضوية 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" ...
..........