|
|
|
ถามเกี่ยวกับ Control Login C# ... ตอนนี้ทำระบบ login โดยให้สามารถแยก User และ Admin ได้ |
|
|
|
|
|
|
|
รบกวนผู้รู้ถามเกี่ยวกับ Contol Login C# นะคะ คือ ตอนนี้ทำระบบ login โดยให้สามารถแยก User และ Admin ได้
และให้แสดงเมนูตาม User ที่ได้ทำการ Login เข้ามา คือ ถ้าเป็น User ให้แสดงเมนูของ User นะคะ แต่ว่าตอนนี้ที่ทำคือเมนูไม่ว่าจะเข้ามาด้วย User หรือ Admin ก็จะโชว์แต่เมนูของ Admin นะคะ นี่คือ code ที่ทำนะคะ
Code (C#)
public partial class MasterPage : System.Web.UI.MasterPage
{
SqlConnection Conn = new SqlConnection(WebConfigurationManager.ConnectionStrings["OfficeConnect"].ConnectionString);
DataSet ds3 = new DataSet();
string username, pwd;
protected void Page_Load(object sender, EventArgs e)
{
try
{
if (Session["UserAthentication"] == "User")
{
Label1.Text = Session["UserAthentication"].ToString();
MenuUser1.Visible = true;
MenuAdmin1.Visible = false;
login_show.Visible = true;
btn_Logout.Visible = true;
Login1.Visible = false;
}
else
{
Label1.Text = Session["UserAthentication"].ToString();
MenuAdmin1.Visible = true;
MenuUser1.Visible = false;
login_show.Visible = true;
btn_Logout.Visible = true;
Login1.Visible = false;
}
}
catch (Exception ex)
{
Session["UserAthentication"] = "";
MenuUser1.Visible = false;
MenuAdmin1.Visible = false;
btn_Logout.Visible = false;
Login1.Visible = true;
}
}
protected void LinkButton1_Click(object sender, EventArgs e)
{
Session.Abandon();
Response.Redirect("../Default.aspx");
}
protected void Login1_Authenticate(object sender, AuthenticateEventArgs e)
{
username = Login1.UserName;
pwd = Login1.Password;
string sqlUser;
sqlUser = "SELECT TB_HR_Emp.EMP_ID, TB_HR_Emp.EMP_TITLE, TB_HR_Emp.EMP_NAME,TB_HR_Emp.EMP_PIC, TB_USER.USER_NAME,TB_USER.USER_PASSWORD,TB_USER.USER_TYPE";
sqlUser += " FROM TB_HR_Emp INNER JOIN TB_USER";
sqlUser += " ON TB_HR_Emp.EMP_ID = TB_USER.EMP_ID";
//sqlUser += " TB_LOCATION_DEPT ON TB_HR_Emp.EMP_ID = TB_LOCATION_DEPT";
sqlUser += " WHERE (TB_USER.USER_NAME = @User) AND (TB_USER.USER_PASSWORD = @Password) AND (TB_USER.USER_TYPE = 'User' OR TB_USER.USER_TYPE = 'Admin') ";
SqlCommand cmd = new SqlCommand(sqlUser, Conn);
cmd.Parameters.AddWithValue("@User", username);
cmd.Parameters.AddWithValue("@Password", pwd);
string CurrentName;
Conn.Open();
CurrentName = System.Convert.ToString(cmd.ExecuteScalar());
if (CurrentName != "")
{
e.Authenticated = true;
sqlUser = "";
sqlUser = "SELECT TB_HR_Emp.EMP_ID, TB_HR_Emp.EMP_TITLE, TB_HR_Emp.EMP_NAME,TB_HR_Emp.EMP_PIC, TB_USER.USER_NAME,TB_USER.USER_PASSWORD,TB_USER.USER_TYPE";
sqlUser += " FROM TB_HR_Emp INNER JOIN TB_USER";
sqlUser += " ON TB_HR_Emp.EMP_ID = TB_USER.EMP_ID";
//sqlUser += " TB_LOCATION_DEPT ON TB_HR_Emp.EMP_ID = TB_LOCATION_DEPT";
sqlUser += " WHERE (TB_USER.USER_NAME = N'" + username + "') AND (TB_USER.USER_PASSWORD = N'" + pwd + "') AND (TB_USER.USER_TYPE = 'User' OR TB_USER.USER_TYPE = 'Admin')";
SqlDataAdapter da = new SqlDataAdapter(sqlUser, Conn);
da.Fill(ds3, "Userss");
string Fullname = ds3.Tables["Userss"].Rows[0]["EMP_PIC"]+ "<br />" + "ชื่อผู้ใช้งาน : " + "<br />" + ds3.Tables["Userss"].Rows[0]["EMP_TITLE"] + ds3.Tables["Userss"].Rows[0]["EMP_NAME"] + "<br />" + ds3.Tables["Userss"].Rows[0]["USER_TYPE"];
Session["UserAthentication"] = Fullname;
//Session["UserAthentication"] = ds3.Tables["Userss"].Rows[0]["USER_TYPE"];
Session.Timeout = 180;
Session["User"] = username;
Session.Timeout = 180;
Session["Type"] = "User";
Session.Timeout = 180;
Response.Redirect("FormHardware.aspx");
}
else
{
e.Authenticated = false;
Session["UserAthentication"] = "";
}
Conn.Close();
}
protected void btn_Logout_Click(object sender, EventArgs e)
{
Session.Remove("UserAthentication");
Session.Remove("Type");
Response.Redirect("FormHardware.aspx");
}
protected void LoginButton_Click1(object sender, EventArgs e)
{
}
}
รบกวนผู้รู้ช่วยแนะนำด้วยนะคะ
Tag : - - - -
|
|
|
|
|
|
Date :
2010-01-20 09:22:53 |
By :
tree1234 |
View :
3701 |
Reply :
5 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
ตรวจสอบค่าใน session เลย ค่าถูกต้องไหน ทำไมถึงเข้าแต่ admin
|
|
|
|
|
Date :
2010-01-20 12:40:16 |
By :
tungman |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
ขอบคุณค่ะจะลองตรวจสอบอีกครั้งนะคะ แล้วมีปัญหาอีกอย่างนะคะคือที่เข้าแต่เมนู admin นะคะ คือ โปรแกรมไม่ได้เข้าไปทำงานใน if (Session["UserAthentication"] == "User") ตอนที่ลอง debug นะคะ
|
|
|
|
|
Date :
2010-01-20 13:15:10 |
By :
tree1234 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
ก็ไม่เท่ากับ string "User" นะสิ
Session["UserAthentication"] != Session["UserAthentication"].ToString()
มันคนละ type กัน
|
|
|
|
|
Date :
2010-01-20 13:45:39 |
By :
tungman |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
คุณ tree คะ กำลังทำระบบล็อกอินแบบแบ่งตาม role อยู่เหมือนกัน ยังทำไม่ได้เลยค่ะ ช่วยแนะนำด้วยค่ะ
|
|
|
|
|
Date :
2010-03-25 13:32:41 |
By :
new |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Session["UserAthentication"] = Fullname; ลองปรับตามตัวอย่าง ของ No3 ดูนะครับ ตรวจสอบค่า Session ดูว่ามัน type เดียวกันรึเปล่า ถ้าตรงกัน User เวลา login จะเข้าสู่โหมด User เองได้ครับ
|
|
|
|
|
Date :
2011-06-16 10:09:03 |
By :
Asway |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Load balance : Server 00
|