/// <summary> /// متد ذیل یک گذرواژه جدید هش شده را از طریق شناسه کاربری برای کاربر ایجاد و در دیتا بیس قرار میدهد و ایمیل ارسال میکند /// </summary> /// <param name="userName"></param> public static void GenerateNewPasswordAndSendToUserByUserName(string userName) { try { //ساخت یک شی از دیتا تیبل DataAccessLayer.DataSetTableAdapters.UsersTableAdapter oUsersTableAdapter = new DataAccessLayer.DataSetTableAdapters.UsersTableAdapter(); //ساخت یک شی از تیبل آدابتر DataAccessLayer.DataSet.UsersDataTable oUsersDataTable = new DataAccessLayer.DataSet.UsersDataTable(); //فیل کردن تیبل آدابتر با متد مربوطه و دیتا تیبل oUsersTableAdapter.FillByUsername(oUsersDataTable, userName); //اگر کاربری وجود داشت if (oUsersDataTable.Count == 1) { //یک رو جدید ایجاد و برابر با خونه صفر دیتا تیبل قرار میدهیم DataAccessLayer.DataSet.UsersRow oUsersRow = oUsersDataTable[0]; //Get User's data from DataSet string strFullName = oUsersRow.FullName; string strUserEmail = oUsersRow.UserEmail; //Generate random Password string strNewPassword = Tools.Utility.GetGuidWithoutDash().Substring(0, 8); string strHashOfNewPassword = Tools.Utility.GetSha1(strNewPassword); //گذرواژه جدید را در دیتا بیس ثبت میکنیم oUsersRow.Password = strHashOfNewPassword; //بروز رسانی دیتا بیس oUsersTableAdapter.Update(oUsersDataTable); //Assign Email Template string strPathName = System.Web.HttpContext.Current.Server.MapPath("~/App_Data/LocalizedEmailTemplates/ForgotPasswordUserEmail.htm"); string strEmailBody = Tools.File.Read(strPathName); //جایگذاری اطلاعات کاربر با قالب strEmailBody = strEmailBody .Replace("[FULL_NAME]", userName) .Replace("[USER_NAME]", userName) .Replace("[PASSWORD]", strNewPassword); //ایجاد شی از میل آدرس System.Net.Mail.MailAddress oMailAddress = new System.Net.Mail.MailAddress(strUserEmail, strFullName, System.Text.Encoding.UTF8); //################################ //کدهای مربوط به ارسال ایمیل //################################ } } //در صورت بروز خطا catch (Exception ex) { //میتوان خطا را لاگ نمود throw (ex); } }
/// <summary> /// متد ذیل یک گذرواژه جدید از طریق رایانامه برای کاربر ایجاد و ایمیل ارسال میکند /// </summary> /// <param name="userEmail"></param> public static void GenerateNewPasswordAndSendToUserByUserEmail(string userEmail) { try { DataAccessLayer.DataSetTableAdapters.UsersTableAdapter oUsersTableAdapter = new DataAccessLayer.DataSetTableAdapters.UsersTableAdapter(); DataAccessLayer.DataSet.UsersDataTable oUsersDataTable = new DataAccessLayer.DataSet.UsersDataTable(); oUsersTableAdapter.FillByUserEmail(oUsersDataTable, userEmail); if (oUsersDataTable.Count == 1) { DataAccessLayer.DataSet.UsersRow oUsersRow = oUsersDataTable[0]; //Get User's data from DataSet string strFullName = oUsersRow.FullName; string strUserName = oUsersRow.UserName; //Generate random Password string strNewPassword = Tools.Utility.GetGuidWithoutDash().Substring(0, 8); string strHashOfNewPassword = Tools.Utility.GetSha1(strNewPassword); oUsersRow.Password = strHashOfNewPassword; oUsersTableAdapter.Update(oUsersDataTable); //Assign Email Template string strPathName = System.Web.HttpContext.Current.Server.MapPath("~/App_Data/LocalizedEmailTemplates/ForgotPasswordUserEmail.htm"); string strEmailBody = Tools.File.Read(strPathName); //جایگذاری اطلاعات کاربر با قالب strEmailBody = strEmailBody .Replace("[FULL_NAME]", strFullName) .Replace("[USER_NAME]", strUserName) .Replace("[PASSWORD]", strNewPassword); ////ایجاد شی از میل آدرس System.Net.Mail.MailAddress oMailAddress = new System.Net.Mail.MailAddress(userEmail, strFullName, System.Text.Encoding.UTF8); //################################ //کدهای مربوط به ارسال ایمیل //################################ } } catch (Exception ex) { //میتوان خطا را لاگ نمود throw (ex); } }
//بدنه متد اینیشیالایز #region Initialize() /// <summary> /// در این متد مشخصات کاربر در فیلد های نام کامل و توضیحات قرار میگیرد /// </summary> private void Initialize() { divShowAvatar.Visible = false; //آواتار DataAccessLayer.DataSet.UploadsDataTable oUploadDataTable = new DataAccessLayer.DataSet.UploadsDataTable(); DataAccessLayer.DataSetTableAdapters.UploadsTableAdapter oUploadTableAdaptor = new DataAccessLayer.DataSetTableAdapters.UploadsTableAdapter(); oUploadTableAdaptor.FillByUploadId(oUploadDataTable, (int)Session["UserID"]); if (oUploadDataTable.Count == 1) { DataAccessLayer.DataSet.UploadsRow oUploadRow = oUploadDataTable[0]; divImageOfAvatar.Visible = true; divShowAvatar.Visible = true; imgAvatar.ImageUrl = "~/Uploads/" + oUploadRow.UploadFileName; imgAvatar.ImageAlign = System.Web.UI.WebControls.ImageAlign.AbsMiddle; } //پروفایل //ایجاد یک شی از کلاس دیتا ست.یوزر تیبل آداپتر DataAccessLayer.DataSet.UsersDataTable oUserDataTable = new DataAccessLayer.DataSet.UsersDataTable(); //ایجاد یک شی از کلاس دیتا ست تیبل آدابتر دات یوزر تیبل آداپتر DataAccessLayer.DataSetTableAdapters.UsersTableAdapter oUserTableAdapter = new DataAccessLayer.DataSetTableAdapters.UsersTableAdapter(); //پر نمودن شی ساخته شده از تیبل آداپتر با شی ساخته شده از دیتا تیبل با متد مربوطه oUserTableAdapter.FillByUserId(oUserDataTable, (int)Session["UserID"]); //بررسی اینکه آیا کاربری وجود داشته است یا خیر if (oUserDataTable.Count != 1) { string strErrorMessage = Resources.Messages.ErrorMessage017; DisplayErrorMessage(strErrorMessage); return; } //ایجاد یک شی از کلاس دیتاست . یوزر رو و مقدار دهی آن توسط شی ساخته شده از دیتا تیبل DataAccessLayer.DataSet.UsersRow oUserRow = oUserDataTable[0]; txtFullName.Text = oUserRow.FullName; txtDescription.Text = oUserRow.UserDescription; }
//بدنه ایونت کلیک برای آپدیت نمودن پروفایل #region UpdateProfile_btnSubmit_Click(object sender, EventArgs e) /// <summary> /// بروز رسانی صفحه پروفایل کاربر /// </summary> /// <param name="sender"></param> /// <param name="e"></param> protected void btnSubmit_Click(object sender, EventArgs e) { if (Page.IsValid) { //ایجاد یک شی از کلاس دیتا ست.یوزر تیبل آداپتر DataAccessLayer.DataSet.UsersDataTable oUsersDataTable = new DataAccessLayer.DataSet.UsersDataTable(); //ایجاد یک شی از کلاس دیتا ست تیبل آدابتر دات یوزر تیبل آداپتر DataAccessLayer.DataSetTableAdapters.UsersTableAdapter oUsersTableAdapter = new DataAccessLayer.DataSetTableAdapters.UsersTableAdapter(); //پر نمودن شی ساخته شده از تیبل آداپتر با شی ساخته شده از دیتا تیبل با متد مربوطه oUsersTableAdapter.FillByUserId(oUsersDataTable, (int)Session["UserID"]); //بررسی اینکه آیا کاربری وجود داشته است یا خیر if (oUsersDataTable.Count != 1) { string strErrorMessage = Resources.Messages.ErrorMessage017; DisplayErrorMessage(strErrorMessage); return; } //ایجاد یک شی از کلاس دیتاست . یوزر رو و مقدار دهی آن توسط شی ساخته شده از دیتا تیبل DataAccessLayer.DataSet.UsersRow oUsersRow = oUsersDataTable[0]; txtFullName.Text = txtFullName.Text.Trim(); oUsersRow.FullName = txtFullName.Text; txtDescription.Text = txtDescription.Text.Trim(); oUsersRow.UserDescription = txtDescription.Text; //بروز رسانی تیبل آدابتر با دیتا تیبل oUsersTableAdapter.Update(oUsersDataTable); string strInformationMessage = string.Format(Resources.Messages.InformationMessage006); DisplayInformationMessage(strInformationMessage); } }
//بدنه ایونت کلیک برای ثبت نام #region Register_btnSubmit_Click(object sender, EventArgs e) /// <summary> /// ایونت کلیک دکمه سابمیت /// </summary> /// <param name="sender"></param> /// <param name="e"></param> protected void btnSubmit_Click(object sender, EventArgs e) { try { //ایجاد یک شی از دیتا تیبل DataAccessLayer.DataSet.UsersDataTable oUserDataTable = new DataAccessLayer.DataSet.UsersDataTable(); //ایجاد یک شی از تیبل آداپتر DataAccessLayer.DataSetTableAdapters.UsersTableAdapter oUserTableAdapter = new DataAccessLayer.DataSetTableAdapters.UsersTableAdapter(); //ایجاد یک پیام خطا از جنس استرینگ و مقدار دهی آن با متد بررسی نام کاربری و ایمیل string strErrorMessage = CheckRegistration(oUserDataTable, oUserTableAdapter, txtUsername.Text, txtEmail.Text); //بررسی مقدار خروجی متد if (string.IsNullOrEmpty(strErrorMessage) == false) { DisplayErrorMessage(strErrorMessage); return; } //ایجاد یک شی از یوزر رو و مقدار دهی آن با یک خط جدید DataAccessLayer.DataSet.UsersRow oUserRow = oUserDataTable.NewUsersRow(); //مقدار دهی بقیه فیلد های جدول یوزرز در دیتا بیس با استفاده از شی یوزر رو //برای ایجاد انگیزه در یوزر که بعدا مثلا کاربرایی که زیاد لاگین کرده در صدر کاربران نمایش دهیم oUserRow.LoginCount = 0; oUserRow.IsUserEmailVerified = true; oUserRow.UserName = txtUsername.Text.ToLower(); oUserRow.UserEmail = txtEmail.Text.ToLower(); oUserRow.Mobile = txtMobile.Text; //فعال یا غیر فعال نمودن کاربر در هنگام ثبت نام oUserRow.IsUserActive = true; //زمان ثبت نام را ذخیره میکنیم System.DateTime dtmNow = Tools.Utility.GetNow(); //زمان اینسرت کردن اطلاعات یوزر در سایت رو بدست میاریم oUserRow.InsertTime = dtmNow; //زمانی که مثلا یوزر پروفایل رو آپدیت میکنه oUserRow.UpdateTime = dtmNow; //زمان آخرین لاگین را ذخیره میکنیم oUserRow.LastLoginTime = Tools.Utility.GetMinDateTime(); //نقش کاربر رو مشخص میکنیم oUserRow.RoleId = (int)Tools.Roles.User; oUserRow.UserDescription = string.Empty; oUserRow.FullName = string.Empty; //گذر واژه رو هش میکنیم //اس اچ ای وان هر چی بهش بدین کر 40 تایی بر میگردونه oUserRow.Password = Tools.Utility.GetSha1(txtPassword.Text); string strUserEmailVerificationKey = Tools.Utility.GetGuidWithoutDash(); oUserRow.UserEmailVerificationKey = strUserEmailVerificationKey; //افزودن خط جدید ایجاد شده به شی دیتا تیبل oUserDataTable.AddUsersRow(oUserRow); //افزودن دیتا تیبل ایجاد شده به تیبل آداپتر oUserTableAdapter.Update(oUserDataTable); //ارسال کلید تائید ایمیل //Tools.Email.SendEmailAfterRegistration(txtUsername.Text, txtPassword.Text, txtEmail.Text,"", strUserEmailVerificationKey); string strPathName = System.Web.HttpContext.Current.Server.MapPath("~/App_Data/LocalizedEmailTemplates/Register.htm"); string strEmailBody = Tools.File.Read(strPathName); //جایگذاری اطلاعات کاربر با قالب strEmailBody = strEmailBody .Replace("[FULL_NAME]", oUserRow.FullName) .Replace("[USER_NAME]", txtUsername.Text) .Replace("[PASSWORD]", txtPassword.Text); //ایجاد شی از میل آدرس System.Net.Mail.MailAddress oMailAddress = new System.Net.Mail.MailAddress(oUserRow.UserEmail, oUserRow.FullName, System.Text.Encoding.UTF8); //################################ //کدهای مربوط به ارسال ایمیل //################################ //نمایش پیام موفقیت در ثبت نام string strInformationMessage = Resources.Messages.InformationMessage004; DisplayInformationMessage(strInformationMessage); } catch (ApplicationException ex0) { //متغیر ای ایکس را لاگ کنید throw (new ApplicationException(Resources.Messages.ErrorMessage020)); } catch (Exception ex) { //متغیر ای ایکس را لاگ کنید string strErrorMessage = string.Format(Resources.Messages.ErrorMessage020); DisplayErrorMessage(strErrorMessage); return; } }
//ایونت تغییر گذرواژه #region ChangePassword_btnChangePassword_Click(object sender, EventArgs e) /// <summary> /// متد تغییر گذرواژه /// </summary> /// <param name="sender"></param> /// <param name="e"></param> protected void btnSubmit_Click(object sender, EventArgs e) { if (Page.IsValid) { try { //ایجاد یک شی از یوزرز دیتا تیبل DataAccessLayer.DataSet.UsersDataTable oUserDataTable = new DataAccessLayer.DataSet.UsersDataTable(); //ایجاد یک شی از یوزرز تیبل آدابتر DataAccessLayer.DataSetTableAdapters.UsersTableAdapter oUserTableAdapter = new DataAccessLayer.DataSetTableAdapters.UsersTableAdapter(); //فیل کردن تیبل آدابتر با دیتاتیبل و متد مربوطه oUserTableAdapter.FillByUsername(oUserDataTable, txtUsername.Text); //اگر مقداری وجود نداشت if (oUserDataTable.Count != 1) { //نمایش پیغام خطا litPageMessages.Text = string.Format (Resources.Messages.ErrorMessage021); } //در غیر اینصورت یک خط از مشخصات همان کاربر در هوا میگیریم DataAccessLayer.DataSet.UsersRow oUserRow = oUserDataTable[0]; //مقدار دهی خط در دیتا بیس توسط کنترل های تکست باکس موجود در صفحه string strFullName = oUserRow.FullName; string strUserEmail = oUserRow.UserEmail; string strNewPassword = txtNewPassword.Text; //هش کردن گذر واژه string strHashOfNewPassword = Tools.Utility.GetSha1(strNewPassword); oUserRow.Password = strHashOfNewPassword; oUserTableAdapter.Update(oUserDataTable); //مراحل خواندن قالب از آدرس ذیل string strPathName = System.Web.HttpContext.Current.Server.MapPath("~/App_Data/LocalizedEmailTemplates/ForgotPasswordUserEmail.htm"); string strEmailBody = Tools.File.Read(strPathName); //جایگزینی مقادیر قالب توسط مقادیر مرتبط strEmailBody = strEmailBody .Replace("[FULL_NAME]", strFullName) .Replace("[USER_NAME]", txtUsername.Text) .Replace("[PASSWORD]", strNewPassword); //ارسال رایانامه برای کاربر System.Net.Mail.MailAddress oMailAddress = new System.Net.Mail.MailAddress(strUserEmail, strFullName, System.Text.Encoding.UTF8); //################################ //کدهای مربوط به ارسال ایمیل //################################ //نمایش پیغام موفقیت divPageMessages.Visible = true; litPageMessages.Text = string.Format(Resources.Messages.InformationMessage007); } catch (ApplicationException ex0) { //متغیر ای ایکس را لاگ کنید throw (new ApplicationException(Resources.Messages.ErrorMessage020)); } catch (Exception ex) { //متغیر ای ایکس را لاگ کنید string strErrorMessage = string.Format(Resources.Messages.ErrorMessage020); DisplayErrorMessage(strErrorMessage); return; } } }
//بدنه مربوط به متد اینیشیالایز #region Initialize() /// <summary> /// متد ذیل در هنگام بارگزاری صفحه اتفاق میفتد /// </summary> private void Initialize() { // تکميل فيلد {0} الزامی است rfvUsername.ErrorMessage = string.Format(Resources.Messages.ErrorMessage002, Resources.Captions.Username); // تکميل فيلد {0} الزامی است rfvPassword.ErrorMessage = string.Format(Resources.Messages.ErrorMessage002, Resources.Captions.Password); // تکميل فيلد {0} الزامی است rfvEmail.ErrorMessage = string.Format(Resources.Messages.ErrorMessage002, Resources.Captions.Email); // تکميل فيلد {0} الزامی است rfvEmail.ErrorMessage = string.Format(Resources.Messages.ErrorMessage002, Resources.Captions.Mobile); try { //غیر فعال کردن برخی از فیلدها txtUserID.Enabled = false; txtRoleID.Enabled = false; txtPassword.Enabled = false; txtEmail.Enabled = false; btnCreateUser.Visible = false; //تعریف یک رشته که حاوی یوزر آی دی از آدرس بار میباشد string strUserId = Request.Params["UserID"]; //تعریف دیتا تیبل DataAccessLayer.DataSet.UsersDataTable oUserDataTable = new DataAccessLayer.DataSet.UsersDataTable(); //تعریف تیبل آدابتر DataAccessLayer.DataSetTableAdapters.UsersTableAdapter oUserTableAdapters = new DataAccessLayer.DataSetTableAdapters.UsersTableAdapter(); //فیل کردن تیبل آدابتر با دیتا تیبل و متد مربوطه oUserTableAdapters.FillByUserId(oUserDataTable, Convert.ToInt32(strUserId)); //اگر کاربری وجود نداشت if (oUserDataTable.Count != 1) { string strErrorMessage = Resources.Messages.ErrorMessage013; DisplayErrorMessage(strErrorMessage); return; } //داشتن مشخصات کاربر در یک خط DataAccessLayer.DataSet.UsersRow oUserrow = oUserDataTable[0]; //بایند کردن کنترل های صفحه از دیتا بیس txtEmail.Text = oUserrow.UserEmail; txtPassword.Text = oUserrow.Password; txtRoleID.Text = oUserrow.RoleId.ToString(); txtUserID.Text = oUserrow.UserId.ToString(); txtUsername.Text = oUserrow.UserName; txtMobile.Text = oUserrow.Mobile.ToString(); //تطابق دراب دان لیست با نام رول که توسط رول آی دی گرفته شده است switch (txtRoleID.Text) { case "0": { ddlRoleId.SelectedValue = "0"; break; } case "900": { ddlRoleId.SelectedValue = "900"; break; } case "100": { ddlRoleId.SelectedValue = "100"; break; } case "200": { ddlRoleId.SelectedValue = "200"; break; } case "300": { ddlRoleId.SelectedValue = "300"; break; } case "400": { ddlRoleId.SelectedValue = "400"; break; } case "500": { ddlRoleId.SelectedValue = "500"; break; } case "600": { ddlRoleId.SelectedValue = "600"; break; } case "700": { ddlRoleId.SelectedValue = "700"; break; } case "800": { ddlRoleId.SelectedValue = "800"; break; } default: { ddlRoleId.SelectedValue = "0"; break; } } //اگر کاربر فعال بود چک باکس مربوطه فعال شود if (oUserrow.IsUserActive == true) { chkUserActive.Checked = true; } //در غیر اینصورت غیر فعال شود else { chkUserActive.Checked = false; } //اگر ایمیل کاربر تائید شده بود چک باکس مربوطه فعال شود if (oUserrow.IsUserEmailVerified == true) { chkEmailVerified.Checked = true; } //در غیر اینصورت غیر فعال شود else { chkEmailVerified.Checked = false; } } catch (ApplicationException ex0) { //متغیر ای ایکس را لاگ کنید throw (new ApplicationException(Resources.Messages.ErrorMessage020)); } catch (Exception ex) { //متغیر ای ایکس را لاگ کنید string strErrorMessage = string.Format(Resources.Messages.ErrorMessage020); DisplayErrorMessage(strErrorMessage); return; } }
//بدنه مربوط به ویرایش اطلاعات کاربر #region EditUsers_btnEdit_Click(object sender, EventArgs e) /// <summary> /// ایونت کلیک دکمه ویرایش /// </summary> /// <param name="sender"></param> /// <param name="e"></param> protected void btnEdit_Click(object sender, EventArgs e) { try { //تعریف دیتا تیبل DataAccessLayer.DataSet.UsersDataTable oUserDataTable = new DataAccessLayer.DataSet.UsersDataTable(); //تعریف تیبل آدابتر DataAccessLayer.DataSetTableAdapters.UsersTableAdapter oUserTableAdapter = new DataAccessLayer.DataSetTableAdapters.UsersTableAdapter(); //فیل نمودن تیبل آدابتر با دیتا تیبل و متد مربوطه oUserTableAdapter.FillByUserId(oUserDataTable, Convert.ToInt32(txtUserID.Text)); //داشتن مشخصات کاربر در یک خط DataAccessLayer.DataSet.UsersRow oUserRow = oUserDataTable[0]; //اگر کاربری وجود نداشت if (oUserDataTable.Count != 1) { string strErrorMessage = Resources.Messages.ErrorMessage017; DisplayErrorMessage(strErrorMessage); return; } //در غیر اینصورت مقادیر کنترل ها در دیتا بیس مینشیند oUserRow.IsUserEmailVerified = chkEmailVerified.Checked; oUserRow.IsUserActive = chkUserActive.Checked; //نشاندن مقدار رشته ای رول در دیتابیس و تطابق آن با تکست باکس رول آی دی switch (ddlRoleId.SelectedItem.Text) { case "None": { //تطابق txtRoleID.Text = ddlRoleId.SelectedValue.ToString(); //نشاندن در دیتابیس oUserRow.RoleId = 0; break; } case "User": { txtRoleID.Text = ddlRoleId.SelectedValue.ToString(); oUserRow.RoleId = 900; break; } case "Programmer": { txtRoleID.Text = ddlRoleId.SelectedValue.ToString(); oUserRow.RoleId = 100; break; } case "Administrator": { txtRoleID.Text = ddlRoleId.SelectedValue.ToString(); oUserRow.RoleId = 200; break; } case "Editor": { txtRoleID.Text = ddlRoleId.SelectedValue.ToString(); oUserRow.RoleId = 300; break; } case "SuperUser": { txtRoleID.Text = ddlRoleId.SelectedValue.ToString(); oUserRow.RoleId = 400; break; } case "Manager": { txtRoleID.Text = ddlRoleId.SelectedValue.ToString(); oUserRow.RoleId = 500; break; } case "SuperVisor": { txtRoleID.Text = ddlRoleId.SelectedValue.ToString(); oUserRow.RoleId = 600; break; } case "Reporter": { txtRoleID.Text = ddlRoleId.SelectedValue.ToString(); oUserRow.RoleId = 700; break; } case "SpecialUser": { txtRoleID.Text = ddlRoleId.SelectedValue.ToString(); oUserRow.RoleId = 800; break; } } //بروز رسانی دیتا بیس oUserTableAdapter.Update(oUserDataTable); //نمایش پیام موفقیت در عملیات divPageMessage.Visible = true; string strInformationMessage = Resources.Messages.InformationMessage009; litPageMessage.Text = strInformationMessage; string strPathName = System.Web.HttpContext.Current.Server.MapPath("~/App_Data/LocalizedEmailTemplates/UserEdit.htm"); string strEmailBody = Tools.File.Read(strPathName); //جایگذاری اطلاعات کاربر با قالب strEmailBody = strEmailBody .Replace("[USER_NAME]", txtUsername.Text) .Replace("[ROLE ID]", ddlRoleId.SelectedItem.Text) .Replace("[ACTIVE]", chkUserActive.Checked.ToString()) .Replace("[VERIFIED]", chkEmailVerified.Checked.ToString()); //ایجاد شی از میل آدرس System.Net.Mail.MailAddress oMailAddress = new System.Net.Mail.MailAddress(oUserRow.UserEmail, oUserRow.FullName, System.Text.Encoding.UTF8); //################################ //کدهای مربوط به ارسال ایمیل //################################ } catch (ApplicationException ex0) { //متغیر ای ایکس را لاگ کنید throw (new ApplicationException(Resources.Messages.ErrorMessage020)); } catch (Exception ex) { //متغیر ای ایکس را لاگ کنید string strErrorMessage = string.Format(Resources.Messages.ErrorMessage020); DisplayErrorMessage(strErrorMessage); return; } }
//بدنه ایونت کلیک برای لاگین #region Login_btnSubmit_Click(object sender, EventArgs e) /// <summary> /// ایونت کلیک روی دکمه سابمیت /// </summary> /// <param name="sender"></param> /// <param name="e"></param> protected void btnSubmit_Click(object sender, EventArgs e) { try { //چک نمودن ولید بودن صفحه if (Page.IsValid) { //ایجاد یک شی از کلاس دیتا ست.یوزر تیبل آداپتر DataAccessLayer.DataSet.UsersDataTable oUserDataTable = new DataAccessLayer.DataSet.UsersDataTable(); //ایجاد یک شی از کلاس دیتا ست تیبل آدابتر دات یوزر تیبل آداپتر DataAccessLayer.DataSetTableAdapters.UsersTableAdapter oUserTableAdapter = new DataAccessLayer.DataSetTableAdapters.UsersTableAdapter(); //پر نمودن شی ساخته شده از تیبل آداپتر با شی ساخته شده از دیتا تیبل با متد مربوطه oUserTableAdapter.FillByUsername(oUserDataTable, txtUsername.Text); //بررسی اینکه آیا کاربری وجود داشته است یا خیر if (oUserDataTable.Count != 1) { string strErrorMessage = Resources.Messages.ErrorMessage013; DisplayErrorMessage(strErrorMessage); return; } //ایجاد یک شی از کلاس دیتاست . یوزر رو و مقدار دهی آن توسط شی ساخته شده از دیتا تیبل DataAccessLayer.DataSet.UsersRow oUserRow = oUserDataTable[0]; //هش کردن گذرواژه string strPassword = Tools.Utility.GetSha1(txtPassword.Text); //بررسی یکسان بودن گذرواژه if (string.Compare(oUserRow.Password, strPassword, true) != 0) { string strErrorMessage = Resources.Messages.ErrorMessage013; DisplayErrorMessage(strErrorMessage); return; } //بررسی فعال بودن کاربر if (oUserRow.IsUserActive == false) { string strErrorMessage = string.Format(Resources.Messages.ErrorMessage014, txtUsername.Text); DisplayErrorMessage(strErrorMessage); return; } if (oUserRow.IsUserEmailVerified == false) { // Your E-Mail was not verified by site! Please check your E-MailBox... string strErrorMessage = string.Format(Resources.Messages.ErrorMessage019); DisplayErrorMessage(strErrorMessage); return; } //به تعداد لاگین های کاربر یکمقدار اضافه میکنیم oUserRow.LoginCount++; //زمان لاگین نمودن کاربر را توسط متد گت نو که در کلاس یوتیلیتی در فولدر مای وب اپلیکیشن هست ثبت میکنیم oUserRow.LastLoginTime = Tools.Utility.GetNow(); //بروز رسانی تیبل آدابتر یوزر و بانک اطلاعاتی oUserTableAdapter.Update(oUserDataTable); //دو سشن شماره و نام کاربری ایجاد میکنیم //سشن ها متغیر های برای یک کاربر و برای تمام صفحات وب سایت هستند Session["UserID"] = oUserRow.UserId; Session["Username"] = oUserRow.UserName; Session["RoleID"] = oUserRow.RoleId; //کاربر را ساین این میکنیم System.Web.Security.FormsAuthentication.RedirectFromLoginPage(oUserRow.UserName, false); } } catch (ApplicationException ex0) { //متغیر ای ایکس را لاگ کنید throw (new ApplicationException(Resources.Messages.ErrorMessage020)); } catch (Exception ex) { //متغیر ای ایکس را لاگ کنید string strErrorMessage = string.Format(Resources.Messages.ErrorMessage020); DisplayErrorMessage(strErrorMessage); return; } }