PDA

View Full Version : سوال: authorization - خودن از دیتابیس برای محدود کردن دسترسی



explod_javad
دوشنبه 26 اسفند 1387, 21:20 عصر
در حالت عادی برای دسترسی به صفحات ( authorization ) از فایل web.config استفاده میشه !


<location path="Admin">
<system.web>
<authorization>
<allow roles="admin"/>
<deny users="*" />
</authorization>
</system.web>
</location>


آیا میشه از دیتا بیس برای محددود کردن دسترسی به صفحات استفاده کرد ؟

tefos666
پنج شنبه 29 اسفند 1387, 15:36 عصر
دوست عزیز یه فیلد به اسم isadmin تو جدول کاربرانت تعریف کن موقع لوگین چک کن اگر isadmin برابر 1 بود اون کاربر admin هستش و بفرستش به صفحه مربوط به admin اگر نه که کاربر معمولی هستش با دستور ExecuteScalar میتونی ستون رو چک کنی



protected void btnlogin_Click(object sender, EventArgs e)
{

String Cstring = @"Data Source=.\SQLEXPRESS;AttachDbFilename=|DataDirector y|\database.mdf;Integrated Security=True;User Instance=True;";
String Query = "Select [type] as tip from members where user_name = '" + username.Text + "' AND Password = '" + password.Text + "';";
SqlConnection conn = new SqlConnection(Cstring);
conn.Open();
SqlCommand cmd = new SqlCommand(Query, conn);
try
{
string tip = cmd.ExecuteScalar().ToString();
if (tip == "admin")
{

// create cookies


if (Remember == null)
{
Remember.Values.Add("userName", username.Text);
Remember.Values.Add("Password", password.Text);
Response.Cookies.Add(Remember);

}
// create session
Session["admininfo"] = username.Text.ToLower().Trim();
Server.Transfer("cpanel.aspx");

}
else if (tip == "user")
{
Session["userinfo"] = username.Text.ToLower().Trim();
Server.Transfer("user_profile.aspx");
lblerror.Visible = false;
username.Text = "";
password.Text = "";


}

}
catch (Exception ex)
{
lblwelcome.Visible = false;
lblerror.Visible = true;
username.Text = "";
password.Text = "";


}
conn.Close();

}