
نوشته شده توسط
Mohandes2009
من فک میکنم دوتا Tabel می خواد که یکی برای مشخصات افراد و یکی برای نقش ها!
Tabel مشخصات : Id,UserName,Pass,Name,Family,Question,Answer,Email
و احیاناً فیلد های مورد نیاز دیگر
Tabel نقش ها : Id,Name,Rull
دوستان نظر بدن با ادامه اگه چیزی میدونند!
خوب بذارین اول جداول را اصلاح کنیم .
اگه بخواهیم یک ساختار ساده درست کنیم به جداول زیر احتیاج داریم:
جدول Role :
RoleID , RoleName ,RoleDesc
جدول User :
UserID , Username ,UserPass , UserEmail ,RoleID, Name , Family ,PasswordQuestion , PasswordAnsware , IsApprove , status, RegisterDate , LastLoginDate
UserID= شماره کاربر
Username = نام کاربری
UserPass = رمز کاربری
UserEmail = ایمیل کاربر
RoleID = شماره Role کاربر از جدول Role ها
Name = نام
Family = فامیلی
PasswordQuestion = سوال امنیتی
PasswordAnsware = پاسخ سوال امنیتی
IsApprove = تایید شده
status = فعال یا غیر فعال کردن کاربر
RegisterDate = تاریخ عضویت کاربر
LastLoginDate = تاریخ آخرین ورود کاربر به سیستم
RoleDesc توضیحی درباره اون Role خاص می باشد
درمورد Role Provider هم در این تاپیک و نحوه استفاده از اون رو می گم ولی ابتدا بذارید عضویت کامل شود دوباره Role Provider هم تو login گفته میشه.
سلام دوستان
خوب اجازه بدید از ایجاد کردن یک کاربر جدید شروع کرد
فرض کنید بر اساس جدولمون چنین فرمی رو آماده می کنیم

بعد اینکه کاربر فرم را پر کرد و دکمه Create User رو Click کرد حالا کد زیر رو می نویسیم
//Hash Password
string HashPassword = FormsAuthentication.HashPasswordForStoringInConfig File(Password.Text, "MD5");
//Insert Data in Database
//after Insert data in Database you can login User
FormsAuthentication.SetAuthCookie(UserName.Text, false /* createPersistentCookie */);
اولین کاری یکه می کنیم اینه که رمز عبور کاربر را کد می کنیم برای این کار من MDF رو پیشنهاد میدم چون غیر قابل بازگشته و شکسته نمیشه یعنی هر دفعه شما وقتی یک کلمه رو به MD5 تبدیل می کنید , همون عبارت می شود ولی غیر قابل بازگشته
از اونجایی که کاربر رمز عبور خود را می داند در هر ورود به سایت رمز عبور وارد شده توسط کاربر با این الگوریتم (MD5) کد می شود و با نمونه موجود در Database مقایسه می شود
و اگر کاربر رمز عبور خود را فراموش کند شما باید رمز عبور جدیدی جایگزین قبلی کنید و نمی توانید رمز عبور را به هیچ عنوان بازیابی کنید
بعد اینکه کاربر به Database اضافه شد می تونید از این متد کلاس FormsAuthentication برای login کردنش در سیستم استفاده کنید .
اولین پارامتر آن نام کاربر و پارامتر دوم آن یک مقدار bool است که آیا کاربر را به خاطر بسپارد یا نه ؟؟
برای استفاده از کلاس FormsAuthentication باید یکسری تغییرات در فایل web.config پروژه هم بدید
<authentication mode="Forms">
<forms name=".Authenticationmysite" loginUrl="~/Login.aspx" defaultUrl="~/Default.aspx" slidingExpiration="true" timeout="43200">
</forms>
</authentication>