מדריך ASP.NET – ניהול State בצד שרת
בבואינו לפתח מערכות 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;
}
הנתון הזה מתייחס לכלל המערכת ללא קשר מי המשתמש. הנתונים הקשורים לכלל המערכת מתנקים זמן מה לאחר שאחרון המשתמשים עוזב את המערכת.
תגובות בפייסבוק