SESSION ID

amera

New member
SESSION ID

מה הם השימושים האפשריים של SESSION ID? האם אני יכול לאחסן אותו במסד נתונים? איזה מטרה זה יכול לשרת?
 

amera

New member
שאלה נוספת על APPLICATION

עד היום עבדתי עם אפליקציה אחד ב- WWWROOT! איך אני יכול לבנות אפליקציה חדשה עצמאית שגם היא תהיה באותו WWWROOT? והאם זה אומר שזה מצריך שם דומיין חדש?
 

gilad g

New member
לא הבנתי את השאלה...

אתה פשוט שם שתי ספריות, ועל כל אחת יש אפליקציה, וזהו.
 

gilad g

New member
Session Id

נועד כדי לתת מזהה ייחודי למשתמשים שלך. זה טוב, אם אתה רוצה להמציא איזה מספר או ערך ייחודי, שלא חוזר פעמיים.
 

nattygur

New member
הסבר

כאשר מגיעה בקשה מדףדפן מסויים מכתובת IP מסויימת (תחנה) ASP.NET מפיק עבור הבקשה הזאת מספר חד ערכי ושולח את המספר הזה עם Cookie לתחנה. האופרציה הזאת גורמת לכך שבכל פעם שהדפדפן שולח בקשה (Request) לתחנה ASP.NET מוצא את ה Cookie של ה Session, מוציא את המספר החד ערכי וכך הוא "יודע" מול איזה משתמש הוא עובד. מאיזה משתמש מגיע הבקשה. כל הגשפט הזה נוצר בכדי להתגבר על אחת מהבעיות המטרידות ביותר בתכנות ב web והיא היות ב web מנגנון stateless. כל בקשה עומדת בפני עצמה ואין אפשרות לשמור נתונים בין בקשות. ASP.NET משתמש באותו Session ID ליצור אובייקט עבור כל משתמש בשם Session ובאובייקט זה לשמור נתונים אשר ניתן להשתמש בהם בין קריאות. מכל הסיפור הזה ניתן להבין כי ה Session ID הוא למעשה מזהה של משתמש במערכת. אתה יכול להשתמש בו בכדי לאכסן נתונים במקומות שונים (בסיס נתונים) עבור משתמש מסוים. אבל כמובן, כמו בכל סיפור בכל טוב יש גם רע ... אז 1) Session קיים לתקופת זמן מסוימת שניתן להגדיר אותה (Web.Config) וברירית המחדל היא 20 דקות. הווה אומר אם במשך 20 דקות לא תהיה שום בקשה של המשתמש מהשרת (לא יגיע Request) ה Session מת ובקשה חדשה תיצר ותשלח Cookie עם Session ID חדש. היי אבל שמרתי נתונים בבסיס הנתונים עבור המשתממש הזה, מה עושים ??? יש מה לעשות אבל זה כבר לשאלה אחרת. 2) אחרון אבל מעצבן. מסתבר שכאשר פותחים חלונות Web חדשים מצד התחנה (window.showmodaldialog לדוגמא) ונפתח חלון החלון הנ"ל נפתח לעיתים תחת Thread אחר של הדפדפן ופעם לא. כל פעם שנפתח חלון כזה תחת דפדפן אחר ב Thread אחר החלון הזה חסר Cookie של Session וכאשר הוא מגיע לשרת הוא "מייצר" Session חדש עבור החלון שנפתח. מצב זה מייצר בעיות רבות משום שמבחינתנו זה אותו משתמש אשר בסך הכל פותח עוד חלון (לעולם הרחב
) רק בכדי לשמור נתונים ב Session של המשתמש אבל הנתונים ישמרו ב Session אחר לגמרי. הבעיה החמורה יותר היא שזה מתרחש "מדי פעם". גם לזה יש פתרונות אבל כמה אפשר לכתוב בתשובה אחת ...
 

amera

New member
האם זה בטוח לתת מספרי תעודת זהות וכ

האם זה בטוח לתת מספרי תעודת זהות וכרטיסי אשראי באתרים שמאובטחים בפרוטוקול SSL
 

yuval k

New member
כן: הם נשלחים מוצפנים בהצפנה חזקה

ביותר. וזו לא כ"כ שאלה לפורום הזה...
 

amera

New member
שאלה על ExecuteNonQuery()

איך אני בודק ש-
cmd_users.ExecuteNonQuery()​
ריק. בניתי פונקציה בקובץ LOGIN שבוקדת אם הגולש נמצא או לא במסד הנתונים. להלן הפונקציה:
Function Login(strUsername As String, strPassword As String) As String Dim strConn As String = "Provider=Microsoft.Jet.OLEDB.4.0;data source=" & server.mappath("data\school_reports.mdb") Dim conn As OleDbconnection=New OleDbconnection(strConn) conn.Open() Dim sql As String="select * from users where user_name='" & strUsername sql=sql & "' and password=" & strPassword Dim cmd_users As OleDbCommand=New OleDbCommand(sql,conn) cmd_users.ExecuteNonQuery() If cmd_users IS "" Then Return "" Else Return "ok" End If conn.close() End Function​
 

gilad g

New member
לא משתמשים ב-ExecuteNonQuery

אלא משתמשים ב-ExecuteReader. על ה-DataReader שהוחזר מבצעים dr.Read(). אם זה החזיר false, תוצאת שאילתת ה-SQL ריקה.
 

amera

New member
שאלה בקשר ל- WINDOWSSERVER2003

אני בונה אתר ב- ASPNET, האם כדאי לי להתקין WINDOWSSERVER2003
 

gilad g

New member
אם יש לך Win2k

זה ממש לא חובה. אבל אם יש לך XP, קח בחשבון שה-IIS של XP יכול להחזיק מקסימום של 10 חיבורים בו זמנית
 

amera

New member
כמה חיבורים בו זמנית יכול

WINDOWSSERVER2003? האם זה שימושי במקרה שאני מאחסן את האתר שלי אצלי במחשב שלי? עד היום אני מאחסן את האתר שלי בבזק בינלאומי ומשלם כסף חודשית? מתי WINDOWSSERVER 2003 הוא רלוונטי עבורי? והאם אני יכול לחסוך את הכסף שאני משלם לבזק בינלאומי?
 

yuval k

New member
Win2k+3 Svr היא מע' הפעלה לשרתים,

ותומכת במספר בלתי מוגבל של חיבורים (AFAIK). למה שתאכסן אצלך על המחשב? מהירות ההעלאה קטנה מאוד (גם אם היא 128 קסל"ש - שזה 16 ק"ב בשניה), בעוד שאצל בזק בינ"ל החיבור מהיר הרבה יותר (לא ADSL). אם אתה רוצה דברים קטנים, אז אפשר להריץ על המחשב שלך - אבל לא אתר שלם.
 

yuval k

New member
../images/Emo26.gif

"על ה-DataReader שהוחזר מבצעים dr.Read(). אם זה החזיר false, תוצאת שאילתת ה-SQL ריקה."
 

amera

New member
האם אני יכול לכתוב

if dr.read() = ""​
והאם אני יכול לכתוב
if dr.HasRows()=""​
 

yuval k

New member
לא.

הפונקציות הנ"ל מחזירות ערך מסוג bool, שזה true או false. "" הוא string, לא bool. לכן, אתה לא יכול לכתוב את זה ככה.
 
למעלה