จำกัดสิทธิ์การใช้เมนู ทำอย่างไร

คำถาม
ผมไม่รู้จักอาจาร์ยคนไหนเลยอ่าครับเพียงแต่ผมเรียนพิเศษอ่าครับอยากได้ความรู้จากเพื่อนๆอ่าครับช่วยทีนะครับขอร้องช่วยลงCODEให้ผมไปศึกษาทีครับ
*ปัญหาของผมคือ
ตอนนี้ผมมี4ฟอมอ่าครับคือฟอมพนักงาน,ขายของ,รับเข้า,ล็อกอินมี3ระดับ(Admin,UserS,UserIN) อยากได้โค้ดที่เวลาสมัครพนักงานคนใหม่อ่าครับแล้วตั้งให้เป็นUserSคือสามารถดูได้เฉพาะฟอมขายของอ่าครับฟอมอื่นดูไม่ได้ถ้าเป็นUserINสามารถดูได้เฉพาะรับเข้าถ้าเป็นAdminดูได้ทุกฟอมเลยอ่าครับขอโค้ดทีนะครับผมนั่งเขียนเองมา3วันแล้วเขียนไม่ได้เลยอ่าครับ ขอบขุนมากครับ
อ้างอิงจาก
http://www.cpe.mut.ac.th/webboard/show.php?post_id=817
ตอบ
1.ใน db ต้องออกแบบเพื่อเก็บ เร็คคอร์ดส่วนนี้ก่อน เช่น
ตาราง user_level
id emp_id level permiss
0 00001 Admin 1111111
1 00002 user 1000101
2.สร้าง login มา เมื่อ login ให้เก็บ ผู้ใช้นี้มาทำการตรวจสอบว่า อยู่ใน level ไหน
ส่วนการ disable menu ให้เข้าไปเช็จที่ที่ฟิลด์ permiss เช่น
select level,permiss from user_level where username=’"+ txtUsername.Text.Trim() +"’" แบบนี้ เมื่อได้ค่ามาแล้ว ให้ทำการสร้าง perperty เพื่อโยนค่านี้ลงไป
3.เมื่อ login ผ่านแล้ว หน้าฟอร์มหลักจะถูกโหลดเข้ามา ที่ฟอร์มหลักให้ event fromLoad ให้ทำการตรวจสอบสิทธิ์การใช้ โดยเข้าไปตรวจสอบที่ perperty ที่เราได้สร้างไว้ด้วยการใช้คำสั่ง SubString(เริ่มที่ตำแหน่งไหน,จำนวนที่ตัดกี่ตัว) เช่น
string permiss="";
property string myPermiss
{
get{return permiss;}
set{permiss=value;}
}
menuรับของ.enable=(myPermiss.substring(1,1)=="1")?true:false; ถ้าไม่เข้าใจ code บรรทัดนี้ ก็ให้เขียนแบบนี้
string val = myPermiss.SubString(1,1);
if(val=="1")
menuรับของ.enable=true;
else
menuรับของ.enable=false;
แบบนี้ครับ จุดสำคัญคือเราต้องรู้ว่า 1 ในตำแหน่ง permiss ตัวไหนใช้กับเมนูไหน ให้ทำการ disable ให้มันถูกต้องครับ
หมายเหตุ:
1111111 = ถ้าเป็น 1 แสดงว่าใช้เมนูนี้ได้ ถ้าเป็น 0 แสดงว่าใช้เมนูนี้ไม่ได้
พอได้ concept ครับ ประยุกต์ดูครับ ตัวอย่างจากโปรเจ็ตของผมครับ
sb = new StringBuilder();
sb.Append("Select count(*) from users where username=’" + txtUsername.Text.Trim() + "’");
sb.Append(" and password=’" + ????? + "’");
strSql = sb.ToString();
if (Conn.Execut_Scalar(strSql))
{
// โยนเข้าฟังก์ชันเพื่อแสดงหน้าฟอร์มเมน
Employee.Account.SetUsername(txtUsername.Text.Trim());
//ดึง permiss จาก db โดยโยนเข้าตัว perperty
valueMenuUser();
//ทำการ disable menu
checkMenuUse();
currentUser();
}
else
{
myMessage.SetMessageBox("Accountไม่ถูกต้อง??? กรุณาตรวจสอบ"); }
//sub valueMenuUser
sb.Append("SELECT Users.UserName, Users.RegistDate,");
sb.Append("…………………………………………………?????
SqlDR = Conn.Execute_SqlDataReader(strSql);//สร้างเองเป็นคลาส
if (SqlDR != null)
{
SqlDR.Read();
//Perperty ที่ใช้รับเพื่อตรวจสอบ
menuMaster = Convert.ToString(SqlDR["menuMaster"]);
menu????? = ?????????????????????????????????????????;
menu????? = ?????????????????????????????????????????;
menu????? = ?????????????????????????????????????????;
SqlDR.Close();
}
//Sub CheckMenuUser
mnuPointFailure.Enabled = (menuMaster.Substring(0, 1) == "1") ? true : false;
mnu???????????.Enabled = (menuMaster.Substring(1, 1) == "1") ? true : false;

กรุณา Comment สักหน่อยเถอะ จะได้ปรับปรุ่งให้ดีขึ้น

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / เปลี่ยนแปลง )

Twitter picture

You are commenting using your Twitter account. Log Out / เปลี่ยนแปลง )

Facebook photo

You are commenting using your Facebook account. Log Out / เปลี่ยนแปลง )

Google+ photo

You are commenting using your Google+ account. Log Out / เปลี่ยนแปลง )

Connecting to %s