PDA

View Full Version : سوال: login با سه نوع کاربر



salmah
دوشنبه 18 آذر 1392, 00:18 صبح
سلام.پروژه من ساخت یهlmsهست. که شامل سه نوع کاربر مدیر واستاد ودانشجوهست. حالا میخوام هر کدومlogin میشن وارد صفحه مدیریت مربوط به خودشون بشن. ولی نمیدونم چه طور انجامش بدم.'پروژه ام را دارم با asp.netمینویسم'
عضویت استاد توسط مدیر سایت انجام میشه .و عضویت دانشجواز طریق فرم ثبت نام هست.. وسه تاجدول دارم 1مدیر 2استاد 3 دانشجو.:افسرده::گریه:

nasrin55
دوشنبه 18 آذر 1392, 00:22 صبح
خب نوع کاربری رو داخل session ادد کن، بعد از لاگین فرد چک کن ببین نوع کاربری چیه و به صفحه مدیریت مربوط به خودش بفرست.

Session.Add("type", type());

salmah
دوشنبه 18 آذر 1392, 00:59 صبح
ممنون از راهنمایی تون. lمیشه یه کم بیشتر توضیح بدید
typeرانیازی هست جایی تعریف کنم. مثلا توی جدول هام

pedramb66
دوشنبه 18 آذر 1392, 11:40 صبح
بهتره نوع کاربر رو تعریف کنید تو جدول.به مثال زیر توجه کنید:
SqlConnection con = new SqlConnection();
con.ConnectionString = System.Configuration.ConfigurationManager.Connecti onStrings["FarshadConnectionString1"].ConnectionString;
con.Open();
SqlCommand cmd = new SqlCommand();
cmd.CommandType = System.Data.CommandType.Text;
cmd.CommandText = "select * from users where username=@user and password=@pass";
cmd.Connection = con;
cmd.Parameters.AddWithValue("@user", txtuser.Text);
cmd.Parameters.AddWithValue("@pass", txtpass.Text);
SqlDataReader dr;
dr = cmd.ExecuteReader();
Session["login"] = 0;
if (dr.HasRows)
{
dr.Read();
if (dr["level"].ToString() == "Admin")
{
if (dr["active"].ToString() == "None active")
{
Response.Redirect("noneactive.aspx");
return;
}
Session["login"] = 1;

Response.Redirect("admin/default.aspx");

}
else if (dr["level"].ToString() == "Normal user")
{
if (dr["active"].ToString() == "None active")
{
Response.Redirect("noneactive.aspx");
return;
}
Session["login"] = 2;
Response.Redirect("user/default.aspx");

}
else if (dr["level"].ToString() == "customer")
{
if (dr["active"].ToString() == "None active")
{
Response.Redirect("noneactive.aspx");
return;
}
Session["login"] = 3;
Response.Redirect("customer/viewproject.aspx");

}
}
else
Label3.Visible = true;
Label3.Text = "Invalid Username Or Password";

return;
}

یک سشن تعریف کردم که مقدار پیش فرضش صفر هست و نسبت به قیلد level تو جدول مقدار بهش دادم.
توجه داشنه باشد تو صفخه کاربران مقدار سشن رو چک کنید.مثلا برای صفخات ادمین داخل رویداد page load این دستورات نوشته میشه:

try
{
if (Session["login"].ToString() != "1")

Response.Redirect("../login.aspx");
}
catch
{
Response.Redirect("../login.aspx");
}

alicomputer
دوشنبه 18 آذر 1392, 15:35 عصر
به نظر شما بهتره از membership استفاده کنیم یا خودمان در db جدول درست کنیم؟
برای بالا بردن امنیت در صورتی که از database استفاده کنیم چه ترفندی بزنیم؟؟