'صنف يستخدم لارسال كلمة سر جديدة لمن نسي كلمة المرور' 'من خلال التحقق من البريد الالكتروني' Public Class retrievePassword 'ضع نص الاتصال مع قاعدة البيانات هنا' Public ConnectionString As String 'سيتم تخزين البريد الالكتروني هنا' Private _Email As String 'سيتم تخزين اسم المستخدم هنا' Private _UserName As String
'تم وضعها بريفيت كي لا لأنه لابد من وضع البريد الالكتروني' Private Sub New() End Sub
'هنا تكون البدية'
Public Sub New(ByVal Email As String)
'يتم تخزين البريد الالكتروني في متغير عام'
_Email = Email
Try
'التأكد من وجود البريد الالكتروني في قاعدة البيانات'
If IsEmailStored() = True Then
'انشاء كلمة مرور جديدة'
Dim NewPassword As String = CreateNewPassword()
'ارسال كلمة المرور'
SendNewPasswordToEmail(NewPassword)
System.Web.HttpContext.Current.Response.Write("تم ارسال البيانات الى بريدك الشخصي")
Else
'عند عدم وجود كلمة المرور في قاعدة البيانات'
System.Web.HttpContext.Current.Response.Write("عفوا البريد الالكتروني غير موجود")
End If
Catch ex As Exception
System.Web.HttpContext.Current.Response.Write(ex.Message)
End Try
End Sub 'التاكد من وجود كلمة المرور
Private Function IsEmailStored() As Boolean
'متغير لتخزين نتيجة الاستعلام عن كلمة المرور
Dim QueryResult As Object
'عليك التاكد من وضع نس الاتصال في المتغير العام'
Dim dbConnection As New OleDb.OleDbConnection(ConnectionString)
'غير الكلمات التي بين القوسين'
Dim dbCommand As New OleDb.OleDbCommand("Select [UserNameColumn] from [UsersTableName] where [EmailColumnName]='" + _Email + "'", dbConnection)
Try
'فتح الاتصال'
dbConnection.Open()
'تنفيذ الاستعلام'
QueryResult = dbCommand.ExecuteScalar()
'اغلاق الاتصال
dbConnection.Close()
Catch ex As Exception
System.Web.HttpContext.Current.Response.Write(ex.Message)
End Try
'اذا لم يوجد هنالك نتائج ارجع لا'
If QueryResult Is DBNull.Value Then
Return False
Else
'إن وجدت نتائج خزنها في المتغير العام user name
_UserName = QueryResult
'ارجع نعم
Return True
End If
End Function 'انشاء كلمة مرور جديدة'
Private Function CreateNewPassword() As String
'Guid يرجع سلسلة من الاحرف تحتوي على '-'
'نستبدل - بحرف a او أي حرف اخر'
Dim str As String = Guid.NewGuid.ToString().Replace("-", "a")
'نرجع أول 6 أحرف من السلسلة'
Dim NewPassword As String = str.Substring(0, 6)
Return NewPassword
End Function'نرسل كلمة السر الجديدة الى البريد الالكتروني Private Sub SendNewPasswordToEmail(ByVal NewPassword As String) 'نشئ رسالة جديدة Dim MailMsg As New System.Web.Mail.MailMessage MailMsg.To = _Email 'غير البريد' MailMsg.From = "YourEmail@yourMailServer.Com" MailMsg.BodyFormat = Web.Mail.MailFormat.Text 'ضع رأس الرسالة' MailMsg.Body = "Message Header" MailMsg.Body += "UserName:" + _UserName + Environment.NewLine MailMsg.Body += "Password:" + NewPassword 'ضع نهاية الرسالة MailMsg.Body += "Message footer" 'نرسل الرسالة' System.Web.Mail.SmtpMail.Send(MailMsg) End Sub
End Class
