ASP.NET มี Feature พิเศษสำหรับจัดการกับระบบสมาชิกและ User Profile ที่สามารถจัดการได้ตั้งแต่ สร้าง User, กำหนด Role, การ Login, การกู้คืนพาสเวิร์ด ฯลฯ ที่เกี่ยวข้องกับ User โดยที่เราแทบไม่ต้องเขียน Code ในการจัดการเรื่องพวกนี้เองเลย เพียงแค่ Config ค่าต่างๆให้ถูกต้องก็สามารถใช้งานได้แล้ว
ซึ่งคุณสมบัติดังกล่าว มิได้มีให้เฉพาะสำหรับ SQL Server เท่านั้น แต่ทาง Microsoft ได้มีการกำหนด รูปแบบของคลาส Provider ที่ใช้จัดการกับระบบสมาชิกและ User Profile ไว้ เพื่อให้ผู้พัฒนาระบบฐานข้อมูลที่สนใจสามารถเขียน Plug-in Provider นี้เพื่อใช้งานกับ ASP.NET ได้ ซึ่ง MySQL ก็มีการทำ Plug-in ตัวนี้ไว้
ขั้นตอนในการใช้คุณสมบัติดังกล่าวสามารถทำได้ดังนี้
1. ดาวโหลด MySQL Connector Net และติดตั้ง ซึ่งตัวนี้เป็นตัวที่ใช้สำหรับติดต่อระหว่าง .NET กับ MySQL
2. ทำการ Add reference ไปยัง MySql.Data.dll และ MySql.Web.dll
3. ทำการ Create table ใน MySQL ด้วย code นี้
4. ทำการ Config Provider ที่จะใช้ในไฟล์ web.config --> system.web ดังนี้
กำหนด Membership Provider และ Set ค่าต่างๆ
หมายเหตุ defaultProvide กับ name สามารถใส่ชื่ออะไรก็ได้ที่คุณต้องการ เพื่อใช้สำหรับอ้างอิงเท่านั้น
กำหนด Role Provider และ Set ค่าต่างๆ
หมายเหตุ defaultProvide กับ name สามารถใส่ชื่ออะไรก็ได้ที่คุณต้องการ เพื่อใช้สำหรับอ้างอิงเท่านั้น
กำหนด Profile Provider และ Set ค่าต่างๆ
หมายเหตุ defaultProvide กับ name สามารถใส่ชื่ออะไรก็ได้ที่คุณต้องการ เพื่อใช้สำหรับอ้างอิงเท่านั้น
เมื่อมาถึงขั้นตอนนี้ก็สามารถใช้คุณสมบัติ การจัดการกับการกับระบบสมาชิกและ User Profile ใน ASP.NET ได้แล้ว
การใช้งาน Control ในหมวด Login คุณสามารถลาก Control ในหมวด Login มาใช้งานได้เลยโดยไม่ต้องเขียน Code ติดต่อกับฐานข้อมูลแต่อย่างใด เพราะตัว Provider ที่ MySQL Plug มานั้นจะจัดการให้ทั้งหมด เช่น ถ้าต้องการสร้าง User ก็ให้ลาก Control CreateUserWizard ลงมาวางไว้ในหน้าเวปเพจที่ต้องการ
จากรูปด้านล่าง ผมลาก Control CreateUserWizard ลงมาไว้ในเวปเพจที่ใช้ในการลงทะเบียน ทำการ Config ค่าเล็กน้อยพร้อมกับตกแต่งอีกนิดหน่อย เมื่อมีผู้ใช้งานเข้ามาที่เวปเพจสำหรับลงทะเบียน ทำการกรอกข้อมูล แล้วกด "ลงทะเบียน" ตัว ASP.NET ก็จะทำการ สร้าง User ให้เองโดยที่ผมไม่ต้องเขียน Code แม้แต่บรรทัดเดียว
ต่อไป เป็นตัวอย่างการใช้งาน User Profile ที่ตัว ASP.NET จะทำเป็น Strong Type ให้ซึ่งจะได้คุณสมบัติของ IntelliSense ของ .NET ด้วย ตามภาพข้างล่างนี้
จะเห็นว่ามี Properties ต่างๆที่เราได้กำหนดไว้ในไฟล์ web.config ก่อนหน้านี้ปรากฎขึ้นมา ทำให้สะดวกในการเขียน Code ในระดับนึงเลยทีเดียว
ตัวอย่างการใช้งาน Profile Provide คุณสามารถสร้าง Form เพื่อใช้ในการเก็บข้อมูลของ User จากนั้น Code เบื่องหลัง Page นั้นก็ให้ Set ค่าให้กับตัวแปล Profile จากนั้นใช้ำสั่ง Save มันจะทำการบันทึกข้อมูลของ User คนนั้นลงในฐานข้อมูลโดยที่เราไม่จำเป็นต้องไปเขียน SQL Code เพื่อใช้ในการบันทึก
ตัวอย่างการใช้งาน Role Provide
ตัวอย่างนี้เป็นการได้สาธิตการดึง User ทุกคนที่อยู่ใน Role Administrator ออก Bind เข้ากับ DropDownList (dllAdminUsers)
และ ASP.NET ยังได้มีหน้าที่ใช้จัดการกับ User ให้ด้วย เช่น การกำหนดรายชื่อ User การกำหนด Role ให้กับ User ฯลฯ โดยคุณสามารถกดตรงไอคอนตามรูป
จะขึ้นหน้าเวปตามนี้
สุดท้ายตัวอย่างการกำหนดสิทธิ์สำหรับการเข้าหน้า Page ต่างๆตามสถานะของ User
จาก Config ข้างบน ส่วนแรกเป็นการกำหนดว่าเวปเพจ EditProfile.aspx ห้ามไม่ให้ User ที่เป็น Anonymous User (แทนด้วยเครื่องหมาย "?") หรือก็คือ User ที่ยังไม่ได้ Login นั่นเอง แต่ User ทุกคนที่ Login แล้ว(แทนด้วยเครื่องหมาย "*") สามารถเข้าได้ และส่วนที่สองเป็นการกำหนดว่าหากไม่มีสิทธิ์เข้าแล้วจะให้ Redirect ไปที่ไหน
หมายเหตุ name สามารถใส่ชื่ออะไรก็ได้ที่คุณต้องการ เพื่อใช้สำหรับอ้างอิงเท่านั้น
วันนี้ก็ขอจบการแชร์ความรู้เล็กๆน้อยๆเพียงเท่านี้ ไว้คราวหน้าจะมาอัพเดทต่อนะคับ หุหุ
สุดท้ายตัวอย่างการกำหนดสิทธิ์สำหรับการเข้าหน้า Page ต่างๆตามสถานะของ User
จาก Config ข้างบน ส่วนแรกเป็นการกำหนดว่าเวปเพจ EditProfile.aspx ห้ามไม่ให้ User ที่เป็น Anonymous User (แทนด้วยเครื่องหมาย "?") หรือก็คือ User ที่ยังไม่ได้ Login นั่นเอง แต่ User ทุกคนที่ Login แล้ว(แทนด้วยเครื่องหมาย "*") สามารถเข้าได้ และส่วนที่สองเป็นการกำหนดว่าหากไม่มีสิทธิ์เข้าแล้วจะให้ Redirect ไปที่ไหน
หมายเหตุ name สามารถใส่ชื่ออะไรก็ได้ที่คุณต้องการ เพื่อใช้สำหรับอ้างอิงเท่านั้น
วันนี้ก็ขอจบการแชร์ความรู้เล็กๆน้อยๆเพียงเท่านี้ ไว้คราวหน้าจะมาอัพเดทต่อนะคับ หุหุ
ขอบคุณมากครับ
ตอบลบกำลังศึกษาอยู่เลย
code table ในsql โหลดไม่ได้ขอใหม่ได้ไหมครับ
ตอบลบขอบคุณมากเลยครับได้หลงเข้ามาอ่านบทความนี้ กำลังศึกษาอยู่เลย
ตอบลบ