خواهش مي كنم دوست گرامي...
من فكر مي كنم كه شما كلاس رمز نگاري رو اصلا" وارد برنامه ي خودتون نكرديد. استفاده از اين كلاس اجباري نيست اما باعث حفظ امنيت گذرواژه ها ميشه كه من طبق عادت از اون استفاده مي كنم. اگه تمايل داشتيد مي تونم اين كلاس رو از پروژه حذف كنم.
تمام خطا هاي شما هم مربوط به همين بخش رمزنگاري هستش. فكر مي كنم اگه كلاس زير را وارد كنيد:
بعد تابع زير رو به صورت استاتيك تعريف كنيد:کد:using System.Security.Cryptography;
کد:static string GetMd5Hash(MD5 md5Hash, string input) { // Convert the input string to a byte array and compute the hash. byte[] data = md5Hash.ComputeHash(Encoding.UTF8.GetBytes(input)); // Create a new Stringbuilder to collect the bytes // and create a string. StringBuilder sBuilder = new StringBuilder(); // Loop through each byte of the hashed data // and format each one as a hexadecimal string. for (int i = 0; i < data.Length; i++) { sBuilder.Append(data[i].ToString("x2")); } // Return the hexadecimal string. return sBuilder.ToString(); }مشكل رفع بشه. همچنين براي استفاده از تابع در هر روال بايد كد زير رو در روال قرار بديد:
اما در مورد بخش دوم سوالتون بايد عرض كنم كه من به طور پيش فرض يه كاربر تعريف كردم با مشخصات زير:کد:using (MD5 md5Hash = MD5.Create())
username: admin
password: admin
شما مي تونيد اول با اين كاربر وارد شيد. سپس با تعريف كاربر جديد، در مراحل بعد قادر خواهيد بود با كاربر تعريف شده هم وارد بشيد؛ البته متاسفانه همون جور كه گفته بودم هنوز فرمان اين بخش مشكل داره كه در اولين فرصت سعي مي كنم يه بار ديگه بررسيش كنم.
اين نكته رو هم اضافه كنم كه اگه بانك UsersDB رو باز كنيد متوجه ميشد كه نام كاربري ها در اون موجوده اما گذرواژه ها به شكل كد شده درون بانك ذخيره ميشه كه اين امر سبب ميشه كه كسي نتونه با داشتن محتويات بانك مذكور رمز عبور رو كشف كنه.
موفق باشيد
آرمين
Bookmarks