מדריך ASP.NET – ניהול State בצד שרת

‏ • Sela

בבואינו לפתח מערכות WEB, נרצה בוודאי לשמור נתונים בין הדפים השונים ולעיתים גם נרצה לשמור נתונים עבור כלל המשתמשים במערכת.

לצורך העניין קיימים ב – ASP.NET מספר כלים המאפשרים לנו לנהל מצבים (State בצד השרת). במדריך זה נפרט את הכלים השונים לניהול State.

Session

נשתמש ב-Session במידה ונרצה לשמור נתונים עבור אותו משתמש גם כאשר הוא עובר בין דפים.

ה-Session תפקידו לשמור נתונים עבור המשתמש בכל זמן שהוא נמצא במערכת (כלומר ה-Session שלו פעיל).

הקוד לשמירת מידע ב-Session הוא כך:

Session["IDNumber"] = <User ID number>;

נתונים אלו נשמרים עבור המשתמש כל עוד הוא מחובר למערכת שלנו. הנתונים נמחקים עבור המשתמש אם לא ביצע כל פעולה במערכת במשך זמן מסויים שנקרא Session timeout , שערך ברירת המחדל שלו הוא 20 דקות.

Application

בדומה ל-Session, גם כאן נשמרים נתונים ללא תלות בדף בו נמצא המשתמש, אלא שכאן הנתונים גם אינם תלויים במשתמש עצמו ונשמרים עבור כל המשתמשים במערכת.

למשל – אם נרצה לשמור את הזמן בו התחבר המשתמש האחרון למערכת, נכנס ל – Code Behind של קובץ ה-Global.asax, שם נמצא מתודה שנקראת Session_Start המופעלת כאשר משתמש מתחבר למערכת (כאשר נוצר ה-Session) ונכתוב בה את הקוד הבא:

protected void Session_Start(object sender, EventArgs e)
{
  Application["LastUserEntered"] = DateTime.Now;
}

הנתון הזה מתייחס לכלל המערכת ללא קשר מי המשתמש. הנתונים הקשורים לכלל המערכת מתנקים זמן מה לאחר שאחרון המשתמשים עוזב את המערכת.

תגיות: , , , ,

IdoFlatow

יועץ ומרצה בקבוצת סלע לתחומי Web ו-Data. עוסק בתחומים Asp.Net, WCF, Silverlight, IIS ו-Entity Framework.כותב הקורס הרשמי של מיקרוסופט ל-WCF וכן שותף בכתיבת הספר ASP.NET Programmer's Reference (ISBN 978-0470505458)

תגובות בפייסבוק