PDA

View Full Version : ایجاد دسترسی به هر صفحه برای هر کاربر خاص و از قبل تائیین شده



rooterror
شنبه 11 اردیبهشت 1395, 05:33 صبح
سلام دوستان خسته نباشید

من صفحه ورودی رو دانلود کردم و از قبل برای هر کاربری کدی تعریف شده که مثلا اگر کد کاربر فلان 3 بود بره به این صفحه ، الان من فقط میتونم برای دو نوع کاربر این رو تعریف کنم و برای سومین کاربر جواب نمیده

این کد ها من هست

کلاس تعریف شده :




public override string[] GetRolesForUser(string username)
{
SqlDataReader reader;
SqlConnection connection = new SqlConnection(ConfigurationManager.ConnectionStrin gs["LoginDB"].ToString());
connection.Open();
string MyQuery = "SELECT Roles.RoleName FROM Users INNER JOIN Roles ON" +
" Users.Username=@Username AND Users.RoleID_FK=Roles.RoleId";
SqlCommand cmd = new SqlCommand(MyQuery, connection);
cmd.Parameters.AddWithValue("Username", username);
reader = cmd.ExecuteReader();
reader.Read();
string[] result = new string[1];
result[0] = reader["RoleName"].ToString();
return result;
}





و دکمه ورود :

FormsAuthentication.SetAuthCookie(txtUsername.Valu e, chbRemember.Checked);
if (Roles.GetRolesForUser(txtUsername.Value)[0] == "Admin")
Response.Redirect("~/a/Default.aspx");
if (Roles.GetRolesForUser(txtUsername.Value)[0] == "Customer")
Response.Redirect("~/b/Default.aspx");
if (Roles.GetRolesForUser(txtUsername.Value)[0] == "Computer")
Response.Redirect("c/Default.aspx");
}

ممنون میشم راهنماییم کنید

maxpayn2
شنبه 11 اردیبهشت 1395, 06:01 صبح
سلام . پیشنهاد میکنم بی خیال FormAuthentication بشی و خودت یه کلاس بنویسی که دسترسی هر کاربر رو معلوم کنه و تو هر صفحه یا هر جایی که لازمه با اون کلاس دسترسی چک بشه و ...

rooterror
شنبه 11 اردیبهشت 1395, 08:12 صبح
فرقش با کلاسی که میگین چیه ؟

امنیتش کدوم بهتره ؟

چقدر باید نحوه کد نویسی رو تغییر بدم ؟

maxpayn2
یک شنبه 12 اردیبهشت 1395, 02:38 صبح
فرقش اینه که همه چی دست خودته و مجبور نیستی محدودیت های Authentication دات نت رو تحمل کنی

امنیتش بستگی به کلاسی که مینویسی داره

نحوه کد نویسی چی رو تغییر بدی ؟