PDA

View Full Version : تعیین سطح دسترسی برای کاربر عضو و میهمان



raha1234567
چهارشنبه 23 فروردین 1391, 09:47 صبح
سلام دوستان این تاپیک رو چند بار گذاشتم ولی متاسفانه حذف شده و مدیر این قسمت هم لطف کرد و برام یه لینکهایی رو گذاشت ولی مشکل اینجاست که من اصلا از کنترل login استفادده نکردم و نمی خوام از role استفاده کنم. برا همین دوباره این تاپیک رو ایجاد کردم.
من کد عضویت رو میذارم براتون و هم چنین کد ورود بعد می خوام ببینم در این حالت با این نوع کد نویسی چطور می تونم معیین کنم که کاربر عضوم بتونه خبر نامه رو ببینه و کاربر میهمان رو به صفحه اخطار ببره

کد عضویت


private void empty()
{

tbname.Text = "";
tbusername.Text = "";
tbpassword.Text = "";
tbpassrepear.Text = "";
tbemail.Text = "";
tbrepearemail.Text = "";
tbsing.Text = "";
tbjob.Text = "";

}
protected void sabt_Click(object sender, EventArgs e)
{
//If(Page.IsValid=true){
string con1 = "server=.;database=shahinshahr;integrated security=true";
SqlConnection con = new SqlConnection(con1);
SqlCommand com = new SqlCommand("insert into member(name,username,password,email,sing,job)value s(@name,@username,@password,@email,@sing,@job)", con);
com.Parameters.AddWithValue("@name", tbname.Text);
com.Parameters.AddWithValue("@username", tbusername.Text);
com.Parameters.AddWithValue("@password", tbpassword.Text);
com.Parameters.AddWithValue("@email", tbemail.Text);
com.Parameters.AddWithValue("@sing", tbsing.Text);
com.Parameters.AddWithValue("@job", tbjob.Text);
//string ins = "insert into member(name,username,password,email,sing,job)value s('" + tbname.Text + "','" + tbusername.Text + "','" + tbpassword.Text + "','" + tbemail.Text + "','" + tbsing.Text + "','" + tbjob.Text + "')";
// SqlCommand com = new SqlCommand(ins, con);
con.Open();
com.ExecuteNonQuery();
con.Close();
lblmessage.Visible = true;
lblmessage.Text = " ";
empty();
}
protected void Page_Load(object sender, EventArgs e)
{
lblmessage.Visible = false;
}


کد ورود



protected void vorood_Click(object sender, EventArgs e)

{
string con1 = "server=.;database=shahinshahr;integrated security=true";
SqlConnection con = new SqlConnection(con1);
string select1 = "SELECT username,password,iduser FROM member WHERE username='" + txt_username.Text + "' AND password='" + txt_password.Text + "' ";
string select2 = "SELECT username,password,iduser FROM admin WHERE username='" + txt_username.Text + "' AND password='" + txt_password.Text + "' ";

con.Open();
DataSet ds = new DataSet();
if (rbkarbar.Checked == true)
{
SqlDataReader dr = new SqlCommand(select1, con).ExecuteReader();
SqlDataAdapter da = new SqlDataAdapter(select1, con1);
da.Fill(ds, "user");
if (ds.Tables[0].Rows.Count > 0)
{
dr.Read();
Session["iduser"] = dr.GetValue(0);
Session["username"] = txt_username.Text;
Session["password"] = txt_password.Text;
Session["userlog"] = "True";
Response.Redirect("user.aspx");
}
else
{
Response.Redirect("report.aspx");
}
}

if (rbadmin.Checked == true)
{
SqlDataAdapter da = new SqlDataAdapter(select2, con1);
da.Fill(ds, "user");
if (ds.Tables[0].Rows.Count > 0)
{
// Session["iduser"] = dr.GetValue(0);
Session["username"] = txt_username.Text;
Session["password"] = txt_password.Text;
Response.Redirect("admin.aspx");
}
else
{
Response.Redirect("report.aspx");
}
}

}


و اینم خودم نوشتم برا اینکه اگه عضو بره به صفحه چت و اگه عضو نیست به صفحه اخطار



if (Session["username"]==null)
Response.Redirect("chat.aspx");
else { Response.Redirect("report.aspx"); }

raha1234567
پنج شنبه 24 فروردین 1391, 08:58 صبح
دوستان حداقل نظر بدید درست یا اشتباه.

sarapepors
پنج شنبه 24 فروردین 1391, 10:57 صبح
این لینک (http://barnamenevis.org/showthread.php?257287-%D8%A2%D9%85%D9%88%D8%B2%D8%B4%DB%8C-%D8%B3%D8%A7%D8%AE%D8%AA-%D9%84%D8%A7%DA%AF%DB%8C%D9%86&highlight=%D9%84%D8%A7%DA%AF%DB%8C%D9%86) رو ببینید من خودم برا مسائل مربوط به لاگین مشکل داشتم یادمه چند بار این تایپیک رو خوندم و همچینین لینک های دیگه همه چیز به روشی بستگی داره که شما برای لاگین در نظر میگیرید به نطر من این لینکی رو که گذاشتم ببین خیلی به من کمک کرده بهترع برا لاگین از امکانات خود دات نت استفاده کنید.

raha1234567
پنج شنبه 24 فروردین 1391, 11:04 صبح
آخه این طور باید کل برنامه رو از سر نو درست کنم بعدشم دستور کار پروژه خواسته شده از کنترل لاگین استفاده نشه.

alonemm
پنج شنبه 24 فروردین 1391, 14:52 عصر
باسلام:

شما میتونید یک جدول به نام Permission داشته باشید که نام و شناسه صفحات سایتتون رو داشته باشید.
سپس یک جدول به نام Role که یک نام و یک شناسه داره.
و جدول آخر Permission_Role که شناسه رول مربوطه و شناسه Permission رو در اون وارد میکنید.
بعد در جدول کاربران یک ستون با نام Role_id داشته باشید که به جدول Role وصل بشه.

در آخر شما پس از عملیات لاگین در یک سشن میتونید Role_id کاربر مربوطه رو داشته باشید و بر اساس اون از جدول Permission_Role یک ُSelect Query داشته باشید و اگر چنین Permission برای این Role تعریف نشده بود به صفحه مربوطه هدایت کنید.




موفق باشید.

sara_aryanfar
پنج شنبه 24 فروردین 1391, 16:39 عصر
دوست عزیز با وجود اینکه لاگین نوشته شده توسط خود ما انعطاف داره اما به پای مال خود دات نت نمی رسه و توصیه بیشتر استفاده از ابزار خود دات نت هست چون در اون مسائلی رو رعایت کرده که شاید ما فراموش کنیم و همین امر ممکنه باعث افت امنیت بشه