Redirect to login page in Session_End event

23 בדצמבר 2009

  טוב, אי אפשר באמת לעשות את מה שכתבתי בכותרת, מכיוון שהשרת מפעיל את האירוע של Session_End והחוק הידוע של http, שחייב להיות Request כדי שיחזור Response.   אבל אם אתם בכל זאת רוצים שכשנגמר ה - Seesion במידה והדפדפן עדיין פתוח שזה יעבור בצורה אוטומטית לדף הלוגין תוכלו לכתוב את הקוד הזה: (במתודת Page_Load - וממולץ שיהיה לכם דף PageBase שכל הדפים יורשים ממנו ושם תכתבו את הקוד הזה)   Response.AddHeader("Refresh", Convert.ToString((Session.Timeout * 60) + 5));   if (Session.IsNewSession) {     Response.Redirect("Login.aspx"); }     השורה הראשונה תגרום לריענון של הדף חמש שניות אחרי שה - Seesion_End קרה.   במידה ומדובר בגישה של ראשונה של ה - Session הזה (מה שיהיה נכון) נעבור...
5 תגובות

SDP – החדש והעתיד

  אני מניח ששמעתם או קראתם על הכנס שסלע מארגנת - Sela Developer Practice - זה הולך להיות משהו ממש מרתק (לדעתי) אני לא זוכר מתי התכנסו עשרים וחמשה מבכירי המרצים של סלע למקום אחד כדי לדבר על הטכנולוגיות.   מי שמעוניין לשמוע על מה חדש בשפות (C# 4.0, C++0X, Visual Studio 2010)   על תמיכה של שפות מודרניות לכתיבת אפלקיציות מקביליות.   ומה יהיה בעתיד (C# 5.0 ?)     מוזמן לבוא להרצאה שאלון פליס ואנוכי נעביר בסוף היום השלישי (29.12)   לפרטים נוספים על ההרצאה.   להרשמה
תגיות: , ,
תגובה אחת

הפעלת כמה מתודות ב – onload של java script

22 בדצמבר 2009

  נתקלתי בבעייה הבאה   ב - Master Page כתבתי את הקוד הבא:   <body onload="a()">   function a() {     alert("a"); }     באחד מהדפים שמשתמש ב - Mater Page כתבתי את הדבר הבא:   <asp:Content ID="Content1" ContentPlaceHolderID="head" runat="server">       <script>         onload = function b() {             alert("b");         }     </script>   </asp:Content>     הבעייה היא שהמתודה b לעולם לא תופעל מכיון שההגדרה של ה - body onload דורסת את ההגדרה הקודמת.   שאלתי את פיני והוא הפנה אותי לכאן. מה שהם מציעים זה את הדבר הבא:   נכתוב את המתודה הזאת: function addLoadEvent(func) {     var oldonload = window.onload;     if (typeof window.onload != 'function') {         window.onload = func;     }     else {         window.onload = function() {             if...
תגיות: ,
2 תגובות

ICallbackEventHandler Example

  בתפוז דברו על ICallbackEventHandler, חשבתי לכתוב דוגמא קטנה.   בעזרת ה - interface הזה אנחנו יכולים להפעיל מתודות בצד השרת ללא PostBack, לדוגמא UpdatePanel מממש את ה - Interface.     נניח שיש לנו UserControl שיש בו לחצן html שבלחיצה אנחנו רוצים להפעיל מתודה בצד השרת ללא PostBack     <%@ Control Language="C#" AutoEventWireup="true" CodeBehind="WebUserControl1.ascx.cs"     Inherits="WebApplication48.WebUserControl1" %>   <input type="button" id='btn' runat="server" value='Click' /> <input type="text" id='txt' />   <script type="text/javascript">       function MyFunction(response, context) {         alert(response);     }   </script>     בצד השרת (ב - User Control) נעשה override ל - PreRender ונכתוב:   protected override void OnPreRender(EventArgs e) {     string callBackStr = Page.ClientScript.                                 GetCallbackEventReference(                                            ...
תגיות: , ,
3 תגובות

הוספת קובץ CSS ל – User Control ול – Master Page

21 בדצמבר 2009

  כשעובדים עם Master Page או עם User Control - אחד מהבעיות הנפוצות הוא כיצד לקשר אליו קובץ CSS, הרי בכל פעם הנתיב משתנה מכיון שה - User Control משתלב בתוך הדף, והדף יכול להיות כל פעם מקונן בתוך תיקיות אחרות.   אפשר לעשות את זה מקוד, אבל אני לא אוהב את זה (אלא אם כן אתם נוהגים לעשות את זה תמיד ובמקום קבוע, כך שלא צריך לחפש בכל פעם מי הוא קובץ ה - CSS.   ב - User Controls אפשר לכתוב משהו כזה   <link rel="stylesheet" type="text/css" href='<%=ResolveClientUrl("~/CSS") %>/Header.css' />   ב - Master Page לעומת זאת חייבים לכתוב את זה בתוך ה - body ולא...
תגיות: , , ,
תגובה אחת

Session Manager

20 בדצמבר 2009

  אחד מהדברים שאני לא אוהב בעבודה עם Session זה העובדה שאחנו עובדים איתו עם מחרוזות. בפרוייקטים בינוניים פתאום מתחילים לשכוח עם איזה שם השתמשנו והאם השתמשנו בשם מסויים, והעניינים מתחילים להסתבך.   ידיד יקר שי קרן כתב class בשם SessionManager שפותר את הבעיות האלו, מכיוון שהשימוש ב - Session הוא בעזרת enum.   אפשר להוריד את הקוד מכאן (אני משתמש בו כבר שנתיים בכל הפרוייקטים שלי)     זה עובד בצורה הבאה. (אני מציג כאן רק חלק מהקוד - הקוד המלא ניתן להורדה מהלינק למעלה)   יש enum עם כל השמות שנרצה להשתמש ב - Session (בכל פעם שנרצה להוסיך משהו חדש - נוסיף תחילה ל - enum)   public enum...
תגיות: , , ,
2 תגובות

גישה ל – Session מתוך handler

  אם אתם יוצרים handler כלשהו (ashx) ואתם רוצים להגיע ל - session בעזרת contex.Session, תווכחו לדעת שזה null, כדי שתוכלו לגשת אתם צריכים אחד מהשניים,   אם אתם צריכים רק לקרוא תוסיפו את ה - interface הבא IReadOnlySessionState   ואם אתם רוצים גם לכתוב תוסיפו את ה - interface הבר IRequiresSessionState     שני ה - interface הם marked interface כלומר ללא שום מימוש (יותר מתאים שהם היו attributes)     הקרדיט מגיע ל - 15Secounds.com בפוסט הבא HTTP Handlers and HTTP Modules in ASP.NET (מומלץ לקריאה)
3 תגובות

The Timeouts Bible

19 בדצמבר 2009

  יש לי חבר יקר אלכס אבוגוב אחד מהאנשים שאני מאוד מעריך מקצועית ואישית. כתב את ה - Timeouts Bible - מסמך המתאר הגדרות Timeout להרבה דברים.   אני מעתיק לכאן את תוכן העניינים, תוכלו להוריד את הקובץ כדי לצפות במידע.   Database Timeouts Transaction Transaction Maximum Timeout Transaction Timeout Changing Transaction Timeout and Transaction Maximum Timeout Distributed Transaction Coordinator Connection SQL Server Connection Timeout Oracle Connection Timeout and Connection Lifetime (ODP.NET) Command SQL Server Command Timeout Oracle Command Timeout (ODP.NET) SQL CE Command Timeout Changing Command Timeout WCF Timeouts Binding Send Timeout Receive Timeout Open Timeout Reliable Session Inactivity Timeout Channel Operation Timeout...
תגיות: ,
תגובה אחת

שיעור בסיסי על ADO

   ניתן להוריד את דוגמת הקוד מכאן.   בפוסט הזה אני רוצה לדבר על ADO, אנחנו נבין את המושגים הבאים:   SqlConnection SqlCommand SqlParameter SqlDataReader ExecuteNonQuery ExecuteScalar SqlTransaction TransactionScope     המטרה של הפוסט היא - שמי שחדש בתחום ידע להתחיל לעבוד מול בסיסי נתונים בצורה הבסיסית ביותר - אני יוצר מתוך הנחה שהקורא מכיר SQL.   נתחיל.   בבסיס הנתונים הכי ידוע בעולם Northwind יש כמה טבלאות - בדוגמא נעבוד עם טבלת Categroies ו - Products.   יש כמה שיטות לעבוד עם נתונים, אבל כאמור אנחנו מדברים כרגע על ADO הפשוט, למעשה גם בו יש שני שיטות אחת זה עבודה עם DataSets והשנייה שאותה נדגים זה עבודה עם אובייקטים שנייצר אותם בעצמנו בעזרת ADO.   אז נניח שיש לנו את האובייקטים...
תגיות: , , , ,
תגובה אחת