בולנט - דברים מיוחדים...

www.ASP.org.il

Israeli ASP Organization
ארגון ה-ASP הישראלי
מאמרים/דוגמאות קוד
קישורים
ספרות
חיפוש כללי:

חפש!
כלליHTMLASPASP.NETSQLמסדי נתוניםJavaScriptXML * XSLDHTML * CSSעיצוב וגרפיקהשרתיםComponentsפרסום ושיווקקידום אתריםקופירייטינגPHP
פרסומת
דף ראשי מדורים דרושים הרשמה למועדון אודותינו צור קשר
מיקום: מאמרים ודוגמאות קוד > ASP.NET

זיהוי משתמשים ב- ASP.NET

כדי לזהות משתמשים ב ASP.NET קיימת התכונה הנקראת Forms authentication. התכונה מאפשרת למפתחים לשמור את המידע אודות זיהוי המשתמשים בקובץ ה web.config. או להשתמש בשיטות אחרות כמו שמירה של הנתונים בבסיס הנתונים, בקבצי XML או בקבצי טקסט. הדבר הנחמד ב Forms authentication הוא שאין צורך יותר לתכנת מערכות אישורים וזיהויים, ה ASP.NET עושה בשבילנו את כל העבודה.

Forms authentication משתמש בעוגיות כדי לעקוב אחר המשתמשים באפליקציה בזמן ביקורם באתר. הדרך בה ה ASP.NET מטפל ב Forms authentication הנה קרוב לודאי דרך דומה לזו שהמתכנת השתמש ב ASP הקלאסי. כאשר המשתמש מבצע כניסה לאתר דרך טופס זיהוי, נוצרת עוגיה אשר עוקבת אחר המשתמש בביקורו באתר. אם המשתמש קורא לדף מאובטח ועדיין לא ביצע Login למערכת, המשתמש ישלח אל דף הכניסה. רק כאשר המשתמש זוהה בהצלחה הוא יועבר את הדף האורגינלי לו הוא קרא.
ב Forms authentication הסטנדרטי כל המשתמשים שמורים בתוך קובץ web.config .

Web.config

אחת הדרכים בהם משתמשים בכדי לקבוע קונפיגורציות באפליקציות ASP.NET זה הקובץ web.config .
הרעיון שמאחורי ה Web.config זה לתת למתכנת את האפשרות לשלוט על האפליקציה שלו במקום לשים אותם בידיים של מנהל המערכת.
יש המון אפשריות להשתמש ב web.config במאמר הזה נבחן רק אחת מהן שהיא זיהוי משתמש בסיסי ע"י Form Authentication .

ה Web.config משתמש במתודות זיהוי סטנדרטיות או בעלות כתבי אמנה (Credentials).

תכונות (Attributes) אימות

התכונה תיאור התכונה
Name שם העוגיה שמשמשת לזיהוי.
Path המסלול שבשימוש העוגייה, ברירת המחדל "/" בדרך כלל מונעת הודעות שגיאה.
LoginUrl ה URL אליו ישלח המשתמש לאחר שיזוהה.
Protection מתודה להגנת נתוני העוגייה, ברירת המחדל וההצעה היא לשימוש ב “All”, שגם מבצעת את הזיהוי וגם מקודדת את הנתונים.
Timeout הזמן עד שמועד עוגיית הזיהוי יפקע.










תכונות לכתבי אמנה

התכונה תיאור התכונה
passwordFormat הפורמט בו הסיסמא תשמר.
User זה האיזור בו ישמר שם המשתמש והסיסמא, אפשר לאבטח את הסיסמא ע"י הרצת הפונקציה HashPasswordForStoringInConfigFile בכדי לקבל סיסמא מעורבבת.






תכונות אישור

התכונה תיאור התכונה
Deny | Allow התכונה הזאת משמשת לאשר או לסרב למשתמש להכנס לאתר.
?= מתכוון למשתמשים אנונימיים או מזוהים.
* מתכוון לכל המשתמשים. באזור הזה אפשר גם להוסיף משתמשים מסוימים ואפשר לאשר או לסרב הרשאות.







כך נראה קובץ של web.config . הקובץ הוא במבנה XML .

<configuration> <system.web> <customErrors mode="Off"/> <authentication mode="Forms"> <forms name="appNameAuth" path="/" loginUrl="login.aspx" protection="All" timeout="30"> <credentials passwordFormat="Clear"> <user name="jeff" password="test" /> <user name="mike" password="test" /> </credentials> </forms> </authentication> <authorization> <deny users="?" /> </authorization> </system.web> </configuration>

בתוך הקובץ הזה ביצענו מספר קונפיגורציות:

זיהוי

בתכונה authentication נקבעה צורת הזיהוי ע"י טופס. בתוך ה forms אנחנו קובעים את תכונת ה Name של העוגיה ל “AppNameAuth” .אפשר לשנות את שם העוגיה לכל דבר כמו MyWebAuth לדוגמא כאשר MyWebAuth הנו שם האפליקציה בה אנחנו משתמשים. כדאי לזכור שאם על אותו מחשב יהיו מספר אפליקציות יש להשתמש בשמות ייחודיים לכל עוגיה.

בשלב הבא קובעים את המסלול של ספריית השורש של האפליקציה, לתכונה loginUrl נ יתן את שם קובץ בדיקת הכניסה המקומי login.aspx. לתכונת סוג ההגנה ניתן All, מה שאומר שעוגיות יעברו קידוד ע"י שיטות קידוד סטנדרטיות של מערכת ההפעלה, ואימות.

האלגוריתמים של הקידוד בא מתוך האלמנט machineKet הנמצא בקובץ Machine.config הקובץ הזה הנו קובץ שמותקן ע"י מסגרת ה .NET סוג זה של אימות נתונים מאבטח שנתוני העוגיה לא הושפעו בזמן המעבר מהלקוח לשרת.

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

בתכונת ה Credentials אנחנו מוסיפים משתמשים. וסיסמאות. לכאן ילך ה FormAuthentication לאמת את נתוני המשתמש.

אישור

כל לוגיקת הזיהוי מתבצעת בקובץ זה. לא משנה אייך אתה רוצה לאמת את נתוני המשתמש, מתוך קובץ ה web.config בסיס נתונים, קובץ XML או קובץ טקסט. בקובץ ה login.aspx מתבצע כל התהליך.

היות ואנחנו עובדים עם זיהוי משתמשים אנחנו יוצרים reference ל Namespace של ה System.Web.Security . כל המתודות של הזיהוי ב ASP.NET עולות מתוך ה Namespace.
Form authentication הנו קלאס בתוך ה System.Web.Security namespace .
בקובץ הזה יש לנו טופס צד שרת פשוט המכיל תיבת טקסט לשם המשתמש ותיבת טקסט לסיסמא שלו. נוסף לכך תיבת סימון "זכור אותי" במידה והמשתמש רוצה לקבוע עוגיה קבועה אצלו במחשב.
לכפתור השליחה יש אירוע onClick שיריץ את הפרוצדורה ProcessLogin. בתוך ה ProcessLogin אנחנו מבצעים את מתודת הזיהוי של הקלאס FormsAuthentication , מעבירים אליה את שם המשתמש וסיסמתו. המתודה בודקת את אזור Credentials בתוך קובץ ה web.config עבור שם המשתמש והסיסמא. אם הם תואמים מתבצעת המתודה RedirectFromLoginPage עם שם המשתמש ומעבירה את המשתמש לדף האורגינלי שנקרא על ידו. המתודה גם כותבת עוגיה במחשב המשתמש כדי לעקוב אחריו ולהבטיח את הזיהוי שלו. אם השם והסיסמא אינם תואמים, מתבצעת שגיאה והמשתמש מקבל הודעה על כך.

Default.aspx

זה הקובץ שהמשתמש קורא לו בכניסה לאתר. הוא יציג את שם המשתמש וסוג הזיהוי.
גם בקובץ זה מתבצע reference ל System.Web.Security namespace היות ונצטרך כמה מהתכונות שלו והמתודות. בדף הזה יש DIV פשוט שבתוכו יוצג מצב האימות הנוכחי וסוג הזהוי. בתוכו יש גם כפתור יציאה שמריץ פרוצדורה המוחקת את העוגיה ממחשבו של המשתמש.
המשתמשים מועברים בדף זה לדף ה login. בתוך פרוצדורת ה Page_Load מתבצעת בדיקה האם המשתמש זוהה ע"י שימוש בתכונה User.Identity.IsAuthenticated המחזירה ערך בוליאני שאומר האם המשתמש עבר או לא עבר זיהוי. אם המשתמש עבר זיהוי אנחנו רוצים להציג את שמו ואת סוג הזיהוי שלו, כדי לעשות זאת אנחנו יכולים להשתמש בתכונה .User.Identity.Name התכונה User.Identity.AuthenticationType מחזירה את סוג הזיהוי שבו השתמשנו.
הפרוצדורה SignOut מאפשרת למשתמש לצאת מהאפליקציה ולמחוק את העוגיה ממחשבו. פעולה זאת תמחוק גם עוגיות קבועות.

סיכום

המאמר הזה נותן הסבר בסיסי להבין את נושא הזיהוי ע"י Forms Authentication ואיך זה יכול להיות שמיש עבורנו.

מקורות

מאמר מקור מתוך Using Forms Authentication in ASP.NET :15seconds.com
מאמר מקור מתוך Using Forms Authentication in ASP.NET :MSDN
Machine.config

תכנות נעים!


התגובות שלכם

         
01. 03/05/2005  אני לא הבנתי
אני לא הבנתי איזה קבצים צריך לפתוח ואיך ואיפה לשים כל קוד באיזה קובץ . ואחרי זה איך רואים את מה שעשיתי .

02. 06/06/2005  The Cracker
מאמר מצויין,עושה את העבודה כמו שצריך

03. 22/02/2006  יעקב ררבה
הדברים ידועים ונמצאים באבטחת מידע
בספר ASP.NET

         

מחבר: נחום גינתרמת קושי: 2  ||  ציון: (7)כל הזכויות שמורות ל-IAO ©

© כל הזכויות שמורות ל-IAO
Lamparas y Mobiles  |   בולנט - Bolenat סטלן  |   מתכונים  |   הומו גאה  |   שמות  |   מיסטיקה וקבלה  |   Fisherman Pants סדרות טלויזיה טיסות זולות הודו נפאל תאילנד ביקורות משחקי מחשב Engineering Solutions עיצוב גרפי בפלאש לימוד צילומים תמונות ופיתוח קנוורט משאיות ישראל islands & beaches TV Series Guide חגי ישראל play online game clothes wear בניית אתר חנויות מחשבים ו-ציוד הקפי jewish holidays israeli games ישראל אופנה חולצות טישירט מעוצבות הריון לידה תינוק כוסיות ערומות קורס אימון אישי מידע על חברות רשתות ikesound car audio wholesale recetas comidas family and woman magic trip T Shirt mania Bolenat Searches Bolenat UK online video clips חיפושים מגזין מסטול ל-סטלן המצוי Hebrew learning online תכשיטים טבעות שרשראות קליפרים מצתים התפתחות הילד comparte light lamps תרופות / מחלות הדפסה על חולצות למכירה מוזיקה ישראלית תמונות סרטונים מצחיקים גידול צמחים פרחים ישראלים בעולם מתפנקים - ספא פינוק מושלם ייעוץ עסקים משפחתיים סרט קולנוע - קומדיה סאטירה כסף / שוק ההון לימוד שחיה בריכה מפסיקים לעשן סיגריות נשים אישה בחורה בחורות Bongs and Pipes Music Festivals Coca-Cola קססונית