من دو نوع کاربر دارم یکی user و admin حالا میخوام اگه admin بئد به صفحه دیگه برود اگه user بود به صفحه دیگه برود
نوع کد لوگین:
protected void ValidateUser(object sender, EventArgs e) { int IDuser = 0; using (SqlConnection con = new SqlConnection(DAL.Utility.Connection_String())) { using (SqlCommand cmd = new SqlCommand("Validate_User")) { string pass_user = FormsAuthentication.HashPasswordForStoringInConfigFile(Lo_loginuser.Password, "SHA1"); cmd.CommandType = CommandType.StoredProcedure; cmd.Parameters.AddWithValue("@username_user", Lo_loginuser.UserName); cmd.Parameters.AddWithValue("@pass_user", pass_user); cmd.Parameters.AddWithValue("@Roul", "User"); cmd.Connection = con; con.Open(); IDuser = Convert.ToInt32(cmd.ExecuteScalar()); con.Close(); } switch (IDuser) { case -1: Lo_loginuser.FailureText = "نام کاربری یا رمز عبور شما اشتباه است"; break; case -2: Lo_loginuser.FailureText = "اکانت شما هنوز فعال نشده است"; break; default: FormsAuthentication.RedirectFromLoginPage(Lo_loginuser.UserName, Lo_loginuser.RememberMeSet); break; } } }
حالا چه چور باید اینکار رو انجام بدم
این برای ورود admin هست حالا برای user چگونه باید تنظیم کنم؟
نقش کاربر را چک کنید
یک if بزارید اگر admin بود redirect کنید و به admin و اگر user بود بفرستید به بخش مورد نظر
اگر میخواهید دسترسی را کنترل کنید باید از RoleProvider استفاده کنید
ببخشد اقای مدائنی
protected void ValidateUser(object sender, EventArgs e) { int IDuser = 0; using (SqlConnection con = new SqlConnection(DAL.Utility.Connection_String())) { using (SqlCommand cmd = new SqlCommand("Validate_User")) { string pass_user = FormsAuthentication.HashPasswordForStoringInConfigFile(Lo_loginuser.Password, "SHA1"); cmd.CommandType = CommandType.StoredProcedure; cmd.Parameters.AddWithValue("@username_user", Lo_loginuser.UserName); cmd.Parameters.AddWithValue("@pass_user", pass_user); cmd.Parameters.AddWithValue("@Roul", "User"); cmd.Connection = con; con.Open(); IDuser = Convert.ToInt32(cmd.ExecuteScalar()); con.Close(); } switch (IDuser) { case -1: Lo_loginuser.FailureText = "نام کاربری یا رمز عبور شما اشتباه است"; break; case -2: Lo_loginuser.FailureText = "اکانت شما هنوز فعال نشده است"; break; default: FormsAuthentication.RedirectFromLoginPage(Lo_loginuser.UserName, Lo_loginuser.RememberMeSet); break; } } }
از این بخش کنترل کنم در وب کانفیگ نمیخواد؟
اگر از role استفاده کنید خیر
از همین کدی که دادم میشه تعیین کرد که ایا ادمین هست یا یوزر و به صفحه مورد نظر ریدایرکت کرد؟
بله
نقش کاربر را بدست بیارید و با یک if مشخص کنید
اگر مدیر بود redirect کنید و ادمین و بوزر بود بره پنل کاربری
کد ریدایرکت درست گذاشتم یعنی باید اینجا بزارم یا جای دیگه؟
باید داخل بلوک if و else قرار دهید
اینجوری که سریع اجرا میشه و به بقیه کد ها نمیرسه
اگه بخوام 2 تا صفحه لوگین داشته باشم اونوقت باید چه چور کنم؟
اینکار صحیح نیست
باید در یکجا کنترل کنید
به این صورت صحیح هست؟
بله
هیچ کاربری تا کنون از این پست تشکر نکرده است
با ما تماس بگیرید تا در این مسیر همراهتان باشیم :)