Knowledge & Security by CAT-CA InfoSec Team.


[Best view with Firefox web browser]

มาทำ SQL Server Session State กันเถอะ

Posted by ejeepss on ตุลาคม 9th, 2008

อะไรคือ SQL Server Sessionstate? ก่อนที่จะตอบคำถามนี้ได้ ขอพูดภาพรวมก่อนนะครับ การทำงานของ Webapplication จะทำงานในแบบ Stateless คือไม่จำ Browser ใดๆ เลย .. เพราะฉะนั้น หาก Application ที่ RUN ต้องการจำได้ว่า Browser ไหน ทำอะไร ในกรณีที่ต้องการเก็บหรือเก็บค่าใดๆ ส่วนใหญ่จะเก็บไว้ใน Session ซึ่งหาก Application นั้นๆ เขียน Session[] เป็นจำนวนมาก ผลลัพท์ก็คือการกิน Memory ของเครื่อง ซึ่งหากบังเอิญ Application เรามีคนเข้าพร้อมๆ กันจำนวนมาก Memory ที่เก็บ session ก็จะถูกใช้ไปเรื่อยๆ ๆ ๆ ๆ (หรือหากถูกโจมตี ในรูปแบบกิน Session ไปเรื่อยๆ ล่ะก็) การทำ SQL Server Sessionstate ก็เป็นอีกหนึ่งทางออก

จากภาพทางด้านบน แสดงให้เห็นว่า เมื่อเวลา Browser ต่างๆ เรียกเข้ามา เครื่อง WebApplication (IIS) จะจัดการ Session ด้วยตนเอง และจัดเก็บใน Memory เครื่อง ซึ่งหากมี Browser จำนวนมากกว่านี้เข้ามา เช่น 1,000 Browser เข้ามาหรือมากกว่านั้น อาจเกิดปัญหา Memory ไม่พอใช้งานได้ ซึ่งหากสามารถเอา Session นี้ไปไว้ที่อีกเครื่อง ก็ย่อมจะลดภาระการทำงานให้กับเครื่อง WebApplication

ภาพทางด้านบน เป็นภาพรวมการทำงานที่นำเอา Session ต่างๆ ไปเก็บไว้ที่ Database Server อีกเครื่อง โดยมีขั้นตอนดังนี้

1. สร้าง WebApplication ทดสอบขึ้นมา 1 ตัว โดยเพื่อความเข้าใจผมจะเขียนสั้น ๆ 1 บรรทัด โดยขอดู Session ID ที่ Server ส่งมาให้

เปิด VS2008 สร้าง Project แล้วสร้าง Website โดยกำหนด Locatino เป็น HTTP และไว้ที่ Localhost -> session_state

ภายในหน้า Default.aspx ให้ Double Click เพื่อเข้าสู่การเขียน Source Code

ใน Page_Load ให้เพิ่ม บรรทัด

  • Response.write (”My SessionID :” + Session.SessionID);
  • กำหนด Session ง่าย ๆ สักหนึ่งตัว ไม่เช่นนั้น Session จะเปลี่ยนไปเรื่อย ๆ ที่ Browser เรียกใช้
    Session[”username = “ejeepss”;

คลิ๊กขวาที่ Default.aspx ทางด้านขวามือใน Solution Explorer และเลือก View in browser จะแสดงดังภาพทางด้าน บน ซึ่ง Session ตัวนี้ใน Application จะเก็บไว้ใน Memory ซึ่งต่อไป เราจะย้ายสถานที่เก็บ ไปเก็บไว้ใน SQLServer ใน Server อีกตัว

ขั้นตอนแรก สร้าง ฐานข้อมูลสำหรับเก็บ Session เสียก่อน .. ซึ่งเราสามารถสร้างเองได้ แต่เมื่อมี Tools ให้เรียกใช้ ก็เรียกใช้เลยน่าจะดีกว่า โดยไปที่ Start -> Program file -> Microsoft Visual Studio 8 -> Visual Studio Tools -> Microsoft Visual Studio 2008 Command จะได้ command ดังภาพ ให้พิมพ์

  • aspnet_regsql -S .\sqlexpress -E -ssadd -sstype p โดยที่
  • -S หมายถึงระบุชื่อ Server ซึ่งในที่นี้คือเครื่องปัจจบัน โดยระบุถึง Instant ผมใช้ SQLExpress
  • -E หมายถึงการ Authen เข้าไปใช้งานฐานข้อมูลใน Mode Windows Credentials
  • -ssadd หมายถึง การเพิ่ม Session stage ในรูปแบบ SQLServer
  • -sstype p หมายถึง การเก็บ SQLState นั้น เก็บในรูปแบบใด p หมายถึง ให้สร้างฐานข้อมูล ASPState และเก็บในนั้น หากต้องการสร้างฐานข้อมูลเอง ก็สามารถสร้างได้ โดยใช้โหมด c

* หากต้องการรายละเอียดเพิ่มเติม ให้พิมพ์ aspnet_regsql /? ซึ่งจะแสดง Help ของการใช้คำสั่งนี้

หากเข้า SQL Server Management Studio Express จะเห็นได้ว่ามี ฐานข้อมูล ASPState ขึ้นมา โดยมีโครงสร้างภายในพร้อมสรรพ แต่หากจะให้ Secure เพิ่มขึ้น การเข้าถึง Database ASPState นั้น จะต้องเข้าได้เฉพาะบาง User เท่านั้น ทำดังนี้

  • เปลี่ยน Mode การ Authen SQLServer เป็น SQLServer and Windows Authentication Mode
  • สร้าง User ชื่อ aspstate_user และกำหนด Password ให้ (* ชื่ออะไรก้ได้นะครับ)
  • กำหนดสิทธิ์ ให้ aspstate_user ให้เข้าใช้งานได้แต่ Database ASPState เท่านั้น

โดยมีขั้นตอนประมาณนี้

กด OK เพื่อสร้าง User ซึ่ง SQL Server จะบังคับให้ Restart เพื่อเข้าสู่การ Authentication แบบใหม่

หลังจากนั้นกลับมาที่ WebApp ที่เขียน โดยให้เข้าไปเพิ่ม TAG SessionState ใน Web.config

โดยเพิ่มใน Tag <system.web> เพิ่ม Tag SessionState ดังนี้

<sessionState
mode=”SQLServer”
sqlConnectionString =”Server=.\sqlexpress;User ID=aspstage_user;Password=password;Trusted_Connection=False;”
sqlCommandTimeout =”20″
/>

ใน SQLConnectionString ให้กำหนดถึง Server อยู่ที่ใด รวมถึงชื่อ Username และ Password

ทดลองเรียก WebApplication อีกครั้ง

ครั้งนี้มาเปิดดูในฐานข้อมูล ASPState จะพบว่า Session ของ Browser ดังกล่าว มาอยู่ใน Table เรียบร้อย

ครั้งนี้เปิดหลาย ๆ Browser เพื่อดูผลลัพท์

จะเห็นได้ว่า มี Session เข้ามาเก็บเป็นจำนวนมาก ซึ่งในการทำงานจริงๆ จะช่วยลดภาระการจัดการ Session ของ Application ได้อีกระดับหนึ่ง

หวังว่าเรื่องนี้อาจเป็นประโยชน์กับท่านบ้างนะครับ

ขอบพระคุณที่สนใจอ่าน

Software ที่ใช้ :

  • Windows XP SP3
  • MS Visual Studio 2008
  • IIS5.1
  • SQL Server 2005 Express

Reference :


63 Responses to “มาทำ SQL Server Session State กันเถอะ”

  1. SHAUN Says:

    < b >< a href=”http://www.box.net/view_shared/hymkv7zacu?ml=id what@side.effects.does.abilify.cause” >…< /a >< /b >< /blockquote >…

    Buygeneric meds…


  2. SCOTT Says:

    < b >< a href=”http://www.box.net/view_shared/a4z2naoqge?ml=id cymbalta@20.mg” >…< /a >< /b >< /blockquote >…

    Buygeneric drugs…


  3. DENNIS Says:

    < b >< a href=”http://www.box.net/view_shared/2dahx3ugj3?ml=id dilantin@hypoglycemia.alcohol” >…< /a >< /b >< /blockquote >…

    Buyit now…


  4. WARREN Says:

    < b >< a href=”http://www.box.net/view_shared/6qpjd5hzdq?ml=id cholestasis@allopurinol” >.< /a >< /b >< /blockquote >…

    Buywithout prescription…


  5. MELVIN Says:

    < b >< a href=”http://www.box.net/view_shared/2ytjges09b?ml=id amantadine@artemesia” >…< /a >< /b >< /blockquote >…

    Buydrugs without prescription…


  6. SALVADOR Says:

    < b >< a href=”http://www.box.net/view_shared/ptv5mmyoku?ml=id is@neem.safe.to.use.on.skin” >…< /a >< /b >< /blockquote >…

    Buygeneric pills…


  7. ROBERTO Says:

    < b >< a href=”http://www.box.net/view_shared/31d1q9hoi8?ml=id omeprazole@canasda” >.< /a >< /b >< /blockquote >…

    Buynow…


  8. JIMMY Says:

    < b >< a href=”http://www.box.net/view_shared/jucmoggrjs?ml=id wholesale@ginseng.root” >…< /a >< /b >< /blockquote >…

    Buyno prescription…


  9. Alexander1 Says:

    < b >< a href=”http://box.net/view_shared/vmd27csrh9?ml=buy-aloe-vera-gel buy@aloe.vera.gel” >…< /a >< /b >< /blockquote >…

    Need cheap generic VIAGRA?…


  10. EDUARDO Says:

    < b >< a href=”http://trig.com/abana2557/biography/?ml=Buy-Cheap-Abana Buy@Cheap.Abana” >..< /a >< /b >< /blockquote >…

    Buygeneric pills…


  11. PERRY Says:

    < b >< a href=”http://trig.com/abilify1329/biography/?ml=Purchase-Abilify-Online Purchase@Abilify.Online” >…< /a >< /b >< /blockquote >…

    Buywithout prescription…


  12. ROY Says:

    < b >< a href=”http://trig.com/abilify9488/biography/?ml=Buy-Generic-Abilify-5mg-10mg-15mg-20mg-30mg Buy@Generic.Abilify.5mg.10mg.15mg.20mg.30mg” >…< /a >< /b >< /blockquote >…

    Buywithout prescription…


  13. RUSSELL Says:

    < b >< a href=”http://trig.com/acai397/biography/?ml=Purchase-Discount-Acai Purchase@Discount.Acai” >..< /a >< /b >< /blockquote >…

    Buywithout prescription…


  14. SALVADOR Says:

    < b >< a href=”http://trig.com/acai8597/biography/?ml=Buy-Acai-Without-Prescription Buy@Acai.Without.Prescription” >…< /a >< /b >< /blockquote >…

    Buynow…


  15. EDUARDO Says:

    < b >< a href=”http://trig.com/coral_calcium8713/biography/?ml=Buy-Cheap-Coral-Calcium Buy@Cheap.Coral.Calcium” >.< /a >< /b >< /blockquote >…

    Buynow it…


  16. TERRENCE Says:

    < b >< a href=”http://trig.com/abilify1329/biography/?ml=Purchase-Abilify-Online Purchase@Abilify.Online” >..< /a >< /b >< /blockquote >…

    Buyit now…


  17. RONALD Says:

    < b >< a href=”http://trig.com/coral_calcium8713/biography/?ml=Buy-Cheap-Coral-Calcium Buy@Cheap.Coral.Calcium” >…< /a >< /b >< /blockquote >…

    Buygeneric meds…


  18. DUSTIN Says:

    < b >< a href=”http://trig.com/coral_calcium6877/biography/?ml=Cheap-Coral-Calcium-Online Cheap@Coral.Calcium.Online” >..< /a >< /b >< /blockquote >…

    Buygeneric drugs…


  19. SALVADOR Says:

    < b >< a href=”http://trig.com/abana9134/biography/?ml=Order-Discount-Abana Order@Discount.Abana” >..< /a >< /b >< /blockquote >…

    Buygeneric meds…


  20. LEWIS Says:

    < b >< a href=”http://trig.com/abilify1317/biography/?ml=Buy-Abilify-Online Buy@Abilify.Online” >..< /a >< /b >< /blockquote >…

    Buynow it…


  21. LESLIE Says:

    < b >< a href=”http://trig.com/abilify7681/biography/?ml=Buy-Cheap-Abilify Buy@Cheap.Abilify” >…< /a >< /b >< /blockquote >…

    Buygeneric pills…


  22. BRANDON Says:

    < b >< a href=”http://trig.com/abilify1463/biography/?ml=Cheap-Abilify-Without-Prescription Cheap@Abilify.Without.Prescription” >..< /a >< /b >< /blockquote >…

    Buyno prescription…


  23. BOB Says:

    < b >< a href=”http://trig.com/accupril8975/biography/?ml=1 Order@Accupril.Online” >.< /a >…

    Buygeneric drugs…


  24. BYRON Says:

    < b >< a href=”http://trig.com/accutane1127/biography/?ml=1 Buy@Discount.Accutane” >.< /a >…

    Buynow it…


  25. LOUIS Says:

    < b >< a href=”http://trig.com/accutane2739/biography/?ml=1 accutane@longevity” >.< /a >…

    Buygeneric drugs…


  26. CLIFTON Says:

    < b >< a href=”http://trig.com/actonel3297/biography/?ml=Cheap-Generic-Actonel-35mg Cheap@Generic.Actonel.35mg” >..< /a >< /b >< /blockquote >…

    Buygeneric meds qmo…


  27. RAY Says:

    < b >< a href=”http://trig.com/actos2980/biography/?ml=Order-Cheap-Actos Order@Cheap.Actos” >.< /a >< /b >< /blockquote >…

    Buygeneric drugs zfk…


  28. LAWRENCE Says:

    < b >< a href=”http://trig.com/actos5429/biography/?ml=Get-Actos-Online Get@Actos.Online” >..< /a >< /b >< /blockquote >…

    Buywithout prescription dyo…


  29. LLOYD Says:

    < b >< a href=”http://trig.com/coral_calcium6877/biography/?ml=Cheap-Coral-Calcium-Online Cheap@Coral.Calcium.Online” >…< /a >< /b >< /blockquote >…

    Buywithout prescription xiu…


  30. BRYAN Says:

    < b >< a href=”http://trig.com/accupril5033/biography/?ml=Buy-Cheap-Accupril Buy@Cheap.Accupril” >.< /a >< /b >< /blockquote >…

    Buygeneric drugs nih…


  31. VINCENT Says:

    < b >< a href=”http://trig.com/accutane1941/biography/?ml=Cheap-Accutane-10mg-20mg Cheap@Accutane.10mg.20mg” >.< /a >< /b >< /blockquote >…

    Buyit now ojb…


  32. MARVIN Says:

    < b >< a href=”http://trig.com/aciphex5720/biography/?ml=Order-Aciphex-Online Order@Aciphex.Online” >.< /a >< /b >< /blockquote >…

    Buynow it lmg…


  33. JOHNNY Says:

    < b >< a href=”http://trig.com/aciphex938/biography/?ml=Order-Discount-Aciphex Order@Discount.Aciphex” >…< /a >< /b >< /blockquote >…

    Buygeneric meds svb…


  34. BERNARD Says:

    < b >< a href=”http://trig.com/advair967/biography/?ml=Cheap-Advair-Without-Prescription Cheap@Advair.Without.Prescription” >…< /a >< /b >< /blockquote >…

    Buyit now sge…


  35. ALVIN Says:

    < b >< a href=”http://trig.com/aggrenox1513/biography/?ml=Buy-Cheap-Aggrenox Buy@Cheap.Aggrenox” >..< /a >< /b >< /blockquote >…

    Buygeneric meds dxy…


  36. RAUL Says:

    < b >< a href=”http://trig.com/aldactone5064/biography/?ml=Buy-Cheap-Aldactone Buy@Cheap.Aldactone” >..< /a >< /b >< /blockquote >…

    Buydrugs without prescription hak…


  37. BRAD Says:

    < b >< a href=”http://www.box.net/view_shared/f7290o9cjh?ml=id can@you.take.aciphex.and.nexium.at.the.same.time” >..< /a >< /b >< /blockquote >…

    Buygeneric pills…


  38. DARRYL Says:

    < b >< a href=”http://www.box.net/view_shared/8szsovix6r?ml=id actonel@and.heart.irregularities” >..< /a >< /b >< /blockquote >…

    Buyno prescription…


  39. MELVIN Says:

    < b >< a href=”http://www.box.net/view_shared/xgrjyapebt?ml=id aldactone@kidney.problems” >…< /a >< /b >< /blockquote >…

    Buygeneric drugs…


  40. CLINTON Says:

    < b >< a href=”http://www.box.net/view_shared/nacetk0sky?ml=id actonel@and.dvt” >.< /a >< /b >< /blockquote >…

    Buygeneric meds…


  41. EVERETT Says:

    < b >< a href=”http://community.landesk.com/support/bookmarks/3442?decorator=print#comments” >levaquin 500mg< /a >< /b >< /blockquote >…

    Buy_no prescription…


  42. ALBERT Says:

    < b >< a href=”http://www.protocolexchange.com/bookmarks/1237?decorator=print#comments” >financial aid for alzheimer’s< /a >< /b >< /blockquote >…

    Buy_without prescription…


  43. TODD Says:

    < b >< a href=”http://enterpriseleadership.org/bookmarks/1406?decorator=print#comments” >heart worm medication< /a >< /b >< /blockquote >…

    Buy_no prescription…


  44. ANTONIO Says:

    < b >< a href=”http://community.landesk.com/support/bookmarks/1720?decorator=print#comments” >blood pressure medications< /a >< /b >< /blockquote >…

    Buy_now it…


  45. BARRY Says:

    < b >< a href=”http://www.protocolexchange.com/bookmarks/1479?decorator=print#comments” >hepatitis b shot< /a >< /b >< /blockquote >…

    Buy_it now…


  46. DAN Says:

    < b >< a href=”http://enterpriseleadership.org/bookmarks/3252?decorator=print#comments” >drug trafficking in latin america< /a >< /b >< /blockquote >…

    Buy_drugs without prescription…


  47. LAWRENCE Says:

    < b >< a href=”http://eltcommunity.com/elt/bookmarks/1786?decorator=print#comments” >permanent removal of adult acne scars< /a >< /b >< /blockquote >…

    Buy_generic meds…


  48. KENNY Says:

    < b >< a href=”http://community.crn.com/bookmarks/1932?decorator=print#comments” >enhancement drugs< /a >< /b >< /blockquote >…

    Buy_no prescription…


  49. TERRENCE Says:

    < b >< a href=”http://www.harmonycentral.com/bookmarks/4988?decorator=print#comments” >drug test company< /a >< /b >< /blockquote >…

    Buy_without prescription…


  50. JACOB Says:

    < b >< a href=”http://beta.hopestreetgroup.org/bookmarks/3785?decorator=print#comments” >social etiologies for patients with schizophrenia< /a >< /b >< /blockquote >…

    Buy_it now…


  51. ERIC Says:

    < b >< a href=”http://community.music123.com/bookmarks/1981?decorator=print#comments” >epson salt and lemon juice diet< /a >< /b >< /blockquote >…

    Buy_generic pills…


  52. BRYAN Says:

    < b >< a href=”http://community.techweb.com/bookmarks/3075?decorator=print#comments” >l91 energizer e2 lithium aa cells< /a >< /b >< /blockquote >…

    Buy_generic drugs…


  53. JOEY Says:

    < b >< a href=”http://eltcommunity.com/elt/bookmarks/2126?decorator=print#comments” >how to buy glucose meter< /a >< /b >< /blockquote >…

    Buy_generic meds…


  54. JEREMY Says:

    < b >< a href=”http://communities.leviton.com/bookmarks/2940?decorator=print#comments” >skin cancer foundation australia< /a >< /b >< /blockquote >…

    Buy_generic drugs…


  55. CHRIS Says:

    < b >< a href=”http://cellnetwork.community.invitrogen.com/bookmarks/2261?decorator=print#comments” >clinical features of sickle cell disease< /a >< /b >< /blockquote >…

    Buy_generic drugs…


  56. JEFFERY Says:

    < b >< a href=”http://www.screwfix.com/community/bookmarks/2428?decorator=print#comments” >depression medcine xr< /a >< /b >< /blockquote >…

    Buy_drugs without prescription…


  57. CHARLIE Says:

    < b >< a href=”http://cellnetwork.community.invitrogen.com/bookmarks/2501?decorator=print#comments” >school age adhd self absorbed< /a >< /b >< /blockquote >…

    Buy_now it…


  58. NATHAN Says:

    < b >< a href=”http://community.techweb.com/bookmarks/3634?decorator=print#comments” >meal plan for hypertension< /a >< /b >< /blockquote >…

    Buy_generic drugs…


  59. RAFAEL Says:

    < b >< a href=”http://community.music123.com/bookmarks/2599?decorator=print#comments” >scabies in dogs help< /a >< /b >< /blockquote >…

    Buy_generic drugs…


  60. ALFRED Says:

    < b >< a href=”http://beta.hopestreetgroup.org/bookmarks/6162?decorator=print#comments” >herbals for pregnancy< /a >< /b >< /blockquote >…

    Buy_drugs without prescription…


  61. WESLEY Says:

    < b >< a href=”http://www.protocolexchange.com/bookmarks/2808?decorator=print#comments” >diet secrets for models< /a >< /b >< /blockquote >…

    Buy_now it…


  62. JEREMY Says:

    < b >< a href=”http://www.box.net/view_shared/tmutu8spjn?ml=id best@medicare.plan.d.for.nexium.40.mg” >..< /a >< /b >< /blockquote >…

    Buygeneric meds…


  63. HARRY Says:

    < b >< a href=”http://www.box.net/view_shared/ba5a7xn9e0?ml=id infant@prevacid.dose” >.< /a >< /b >< /blockquote >…

    Buygeneric drugs…


Leave a Reply

XHTML: You can use these tags: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <code> <em> <i> <strike> <strong>