ขอโค้ด login แบบตรวจสอบผู้ใช้หน่อยครับ...ผมจะทำระบบ ล็อกอิน โดยมี TextBox 2 อัน เพื่อ ใส่ username และ Password
เอา Concept ไปลองละกันนะครับ
1. ก็สร้าง Query โดยการสร้างเงื่อนไขโดยการเอา Textfield แต่ละอันไปเปรียบเทียบกับ Field ของตัวเอง
เช่น WHERE username = username.text AND password=password.text AND accesslv = accesslv.selectedvalue จากนั้นตรวจสอบว่ามีข้อมูลหรือไม่ ถ้าไม่ แจ้งบอกว่ากรอกข้อมูลผิด
2. เมื่อมีข้อมูล ก็ทำการเก็บค่า Username และ Accesslv โดยใช้ Session เพื่อที่จะใช้ในการกำหนดสิทธิ เช่น Session["AccessLV"]=dataset.Tables[0].Rows[0].ItemArray[ตำแหน่ง field ที่เก็บ AccessLV]
3. จากนั้นก็ส่งค่าไปหน้าที่ต้องการ โดยใช้ Session["AccessLV"] ในการสร้างเงื่อนไขต่างๆ เช่น หากในหน้านั้นๆนักศีกษาไม่สามารถเข้าได้ก็อาจจะสร้างเงื่อนไขบอกว่า If (Session["AccessLV"] == "Student") Response.Write("You could not authorize to enter this page.")
ลองไป Coding เองดูก่อน ได้ไม่ได้ยังไง ค่อยเอาโค้ดมาให้ช่วยดูอีกทีนะครับ
Date :
2010-01-19 22:29:31
By :
pk-businezz
ถ้าการเลือกสิทธิ์โดยการเลือก Dropdownlist ตอน login แล้วถ้าคนที่เป็นนักเรียนเลือกสิทธิ์เป็นอาจารย์ละครับ หรือเลือกสิทธิ์เป็น Admin ละ จริงๆ ให้กรอกแค่ Username กับ Password พอครับ
เรื่องของสิทธิ์ให้เก็บที่ Base ครับโดยการสร้างตาราง 3 ตาราง ถ้าเป็นผมๆจะสร้างดังนี้คือ
1. tbMember เก็บข้อมูลสมาชิก ทั้งหมด ประกอบด้วย MemberID,FirstName, LasetName ก็ว่าไป
2. tbRoles จะมี 3 column หลักๆคือ RolesID,RolesName, Description สำหรับ RolesName ก็เก็บสิทธิ์เช่น admin, teacher,student ซึ่งตารางนี้จะต้อง Insert ข้อมูลไว้เลย
3. tbMemberRoles ก็จะมี 3 column หลักเช่นกัน เก็บ MemberID, RolesID, MemberRolesID
เวลาตอน Regis ก็ Insert ลง 2 ตารางคือ tbMember กับ tbMemberRoles ครับ จะให้คนไหนมีสิทธิ์เป็นอะไรก็กำหนด RolesID ให้คนนั้น
Date :
2010-01-19 22:58:07
By :
KohDev
การเช็คก็เอา UserName ไป Select จาก Base ถ้าได้ Row มากกว่า 0 ก็แสดงว่ามีชื่อนี้ในระบบ ถ้าไม่มีก็แจ้ง Message "รหัสผู้ใช้หรือรหัสผ่านไม่ถูกต้อง"
ถ้ามี Row มากกว่า 0 ก็ค่อยไปเช็ค Password ว่าตรงหรือไม่ ถ้าไม่ตรงก็แจ้ง "รหัสผู้ใช้หรือรหัสผ่านไม่ถูกต้อง"
ถ้าตรงก็เอาข้อมูลที่ Select มาได้ เก็บลง Session หรือ cookie ครับ ก็ต้องดูว่าเราจะเก็บข้อมูลอะไรบ้าง เช่น ชื่อ นามสกุล , MemberID , RolesID, RolesName, ที่อยู่ก็แล้วแต่คุณ
พอไปเปิดหน้าไหนที่ให้เข้าได้เฉพาะสิทธิ์ที่กำหนดก็อ่านค่าจาก Cookie หรือ Session ที่เก็บไว้ว่าสิทธิ์เป็นอะไร ถ้าหน้านี้ให้เฉพาะอาจารย์ก็มาเช็ดว่าสิทธิ์เป็นอาจารย์หรือเปล่า ใช่ก็เข้าได้ ไม่ใช่ก็ เด้งไปหน้าแรกก็ได้
ประมาณนี้ลองทำดูนะครับ มีไรมาถามได้
Date :
2010-01-19 23:07:46
By :
KohDev
อันนี้เป็นโค้ดที่ทำไว้ตอนแรกอะครับ โดยการ select จากตาราง user ไว้เก็บข้อมูลผู้ใช้ทั้งหมด ซึ่งจะมี ฟิลด์ Status ไว้เก็บสถานะ โดย Admin=1, อาจารย์ =2, นักศึกษา=3 แต่ลองรันดูแล้ว มัน login ได้แต่ Admin อย่างเดียว พอเป็น อาจารย์หรือนักศึกษามันเข้าไม่ได้
public partial class index2 : System.Web.UI.Page
{
DataClassesDataContext db = new DataClassesDataContext();
protected void Page_Load(object sender, EventArgs e)
{
}
protected void Button1_Click(object sender, EventArgs e)
{
Session["username"] = TextBox1.Text;
Session["password"] = TextBox2.Text;
var q = from p in db.users select p;
Array.ForEach(q.ToArray(), x =>
{
if ((Session["username"] .ToString()== x.username) && (Session["password"].ToString() == x.password) && (x.status == DropDownList1.Text))
{
if (Convert.ToInt32(x.status) == 1)
{
Server.Transfer("admin/admin.aspx");
Session.Remove("username");
Session.Remove("password");
}
else
{
Server.Transfer("test.aspx");
Session.Remove("username");
Session.Remove("password");
}
}
else
{
Server.Transfer("index.aspx");
Session.Remove("username");
Session.Remove("password");
}
});
}
}
Date :
2010-01-20 15:18:12
By :
jorjarn
Load balance : Server 05