PracticU

אבטחה - MVC Security - חלק 3

בלי כתוביותעם כתוביות
PracticU › קורס MVC › אבטחה - MVC Security - חלק 3
מילון מושגים:
MVC - דפוס ארכיטקטורה שמפריד יישום לשלושה חלקים: מודל (נתונים), תצוגה (View) ובקר (Controller).
View - רכיב שאחראי על הצגת המידע למשתמש (התצוגה) בדפוס MVC. גם טבלה וירטואלית מבוססת שאילתה במסד נתונים.
לייאאוט - ארגון וסידור הרכיבים החזותיים על המסך או בדף, כמו מיקום כפתורים, טקסט ותמונות.
כפתור - רכיב בממשק המשתמש שהמשתמש לוחץ עליו כדי להפעיל פעולה, כמו שליחת טופס או מעבר לדף אחר.
טופס - אזור בממשק שבו המשתמש מזין נתונים בשדות ושולח אותם, למשל טופס הרשמה או התחברות.
JavaScript - שפת תכנות שרצה בעיקר בדפדפן ומוסיפה אינטראקטיביות לדפי אינטרנט. רצה גם בצד השרת באמצעות Node.js.
POST - שיטת HTTP לשליחת נתונים לשרת כדי ליצור או לעדכן משאב, למשל שליחת טופס.
קונטרולר - רכיב שמתווך בין הממשק לבין הלוגיקה והנתונים, מקבל בקשות ומחליט כיצד לטפל בהן (למשל בדפוס MVC).

אבטחה - MVC Security - חלק 3
השיעור מוסיף ללשונית האתר קישורים להתחברות ולהתנתקות, שיופיעו בכל הדפים.
תצוגה חלקית לכניסה
1. Partial view: יוצרים View חלקי בשם _LoginPartial בתיקייה Shared, כדי שניתן יהיה להכניס אותו ל-Layout.
2. בדיקת מצב: ב-Partial אין פעולה בצד השרת, ולכן משתמשים בקוד Razor ובודקים אם Request.IsAuthenticated.
3. משתמש מחובר: מוצגת ברכה עם השם מתוך User.Identity.Name, וכפתור Sign out.
4. משתמש לא מחובר: מוצג קישור Login.
Sign out
5. טופס: הקישור Sign out הוא קישור JavaScript שמגיש טופס POST לפעולה SignOut בקונטרולר Account. הטופס מוצג באותה שורה (display inline).
6. הפעולה SignOut: קוראת ל-FormsAuthentication.SignOut() ואז מפנה לדף המוצרים.
שימו לב
ה-Partial מוכנס ל-Layout הכללי, ולכן הקישורים מופיעים בכל הדפים באתר.
בסיום השיעור המשתמש יכול להתחבר ולהתנתק מכל דף.
השיעור הבא בקורס: אבטחה - MVC Security - חלק 4
מילון מושגים:
קוד מקור - הקוד שמפתחים כותבים בשפת תכנות, לפני הידור, המגדיר את פעולת התוכנה.
MVC - דפוס ארכיטקטורה שמפריד יישום לשלושה חלקים: מודל (נתונים), תצוגה (View) ובקר (Controller).

להורדת קוד מקור של כל הדוגמאות בקורס MVC – לחץ כאן


פרקי ההרצאה: אבטחה - MVC Security - חלק 3

  1. 00:00

    לינקים ל-Login ול-Logout בכל הדפים

  2. 00:53

    יצירת Partial View בשם LoginPartial

  3. 01:53

    בדיקת IsAuthenticated עם קוד Razor

  4. 02:46

    הצגת שם המשתמש עם User.Identity

  5. 03:24

    Form לביצוע SignOut ב-POST

  6. 05:07

    לינק JavaScript ששולח את ה-Form

  7. 06:10

    לינק Login למשתמש לא רשום

  8. 06:48

    פונקציית SignOut ב-Account Controller

תמלול ההרצאה: אבטחה - MVC Security - חלק 3

הטקסט המלא של הדקות הראשונות בהרצאה «אבטחה - MVC Security - חלק 3» בקורס הווידאו של PracticU – כתוביות בעברית עם זמן התחלה לכל פסקה. כך תוכלו לקרוא ולחפש את הנושאים לפני שמתחילים ללמוד.

  1. 00:16

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

  2. 00:44

    ואת היוזרניים שלו ולאפשר לו גם לבצע לוגאאוט אז אנחנו רוצים לראות את הלינק הזה בעצם בכל הדפים, לכן אנחנו צריכים להגדיר את הלינק ב-Layout.

  3. 00:57

    אבל יש לנו פה טיפה קוד לרשום, ולכן מה שרצוי לבצע זה לבצע partial view עבור הקטע קוד הזה. בואו נלך ל-shared ונוסיף כאן view, נגדיר אותו כ-partial ונגדיר view מיוחד עבור ה-login.

  4. 01:18

    נקרא ל-view הזה underline:login:partial, כאן אנחנו הולכים לרשום את הקטע קוד שיאפשר למשתמש לראות לינק של לוגין ולינק של לוג אאוט. אבל איך אנחנו יכולים לגשת מפה לצד של השרת?

  5. 01:41

    הרי אם היינו ב-view רגיל, אז כמובן יש לנו את הקונטרולר ואת האקשן שלו בצד של השרת ואנחנו יכולים לקרוא לפונקציות c-sharp בשביל לדעת האם המשתמש מחובר או לא מחובר.

  6. 01:53

    אם אנחנו נמצאים ב-partial view אין לנו מאחורה בעצם ברוב המקרים איזשהו אקשן שמשרת אותנו. ולכן מה שאנחנו יכולים לעשות זה פשוט להשתמש בקוד Razor בשביל לבנות קוד סאט שרת.

  7. 02:09

    אז אנחנו יכולים להגדיר if לגשת ל-request is authenticated. האם הבן אדם כרגע רשום או לא רשום? וכמובן יש לנו את החלק של ה-elf. הרי אנחנו לא רוצים כל הזמן להראות לו לינק של לוגין.

  8. 02:29

    אם הבן אדם כבר ביצע לוגין אנחנו רוצים להעלים את הלינק של הלוגין ולהראות לו לינק של לוג-אאוט. אוקיי, מה אנחנו עושים בתוך הקטע קוד שהתבצע במידה והוא לוגין?

  9. 02:44

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

  10. 03:03

    זה יהיה בuser.identity name. user.identity זה בעצם המידע לגבי היוזר שכרגע מחובר, ושם המשתמש. בואו נגדיר קו הפרדה כזה ולאחר מכן נפתח כאן איזשהו פורם מפני שמה שאנחנו רוצים לעשות זה להציג לינק עבור signout אז אם אנחנו רוצים להציג לינק עבור signout אנחנו רוצים שהלינק יצביע לנו על action signout שנמצאת בתוך ה-controller account

  11. 03:52

    בשביל לבצע לינק אנחנו צריכים דרך javascript לקרוא לאקשן הזה כי לינק לא by default קוראים JavaScript בגלל שאנחנו צריכים להפעיל פה JavaScript אז רצוי שיהיה לנו פה איזשהו פורם ונתחיל להגדיר לו מספר הגדרות דבר ראשון אנחנו מגדירים את ה-action name שלו action name sign out דבר הבא

  12. 04:22

    לאיזה קונטרולר זה נמצא זה נמצא באקאונט דבר הבא אנחנו רוצים להגדיר מה בעצם ה-form method אנחנו רוצים שהוא יהיה בפוסט. הדבר הבא שאנחנו רוצים להגדיר זה פרמטר עבור הפורם שנקרא ID, ולכן יש לנו פה אפשרות להגדיר בפורם HTML Attributes.

  13. 04:52

    אז נגדיר משתנה new ID שווה find out form. לאחר מכן נסגור כאן את הפונקציה של begin form, נסגור את ה-using ובתוך אנחנו יכולים להגדיר את הלינק.

  14. 05:17

    יש לנו a href ואנחנו מגדירים פה את ה-JavaScript שאנחנו רוצים JavaScript נקודותיים מריץ לנו פונקציית JavaScript או קוד JavaScript בתוך לינק הפונקציה שאנחנו רוצים להריץ זה איתור הפורם הנוכחי זה יהיה על ידי document.getElementByID נאתר את הפורם שקראנו לו

  15. 05:49

    signout.form ונקרא לפונקציה submit הלינק הזה יראה את המילה signout באלס במידה והמשתמש לא רשום אנחנו רוצים לקרוא ל-HTML לרשום לו לוגין כדי שהוא יוכל לבצע לוגין ומפנים אותו לאקשן שנקראת לוגין שנמצאת בקונטרולר אקאונט.

  16. 06:40

    עכשיו כמובן שצריכה להיות לנו פונקציית submit או ליתר דיוק פונקציית signout בקונטרולר אקאונט. אז בואו ניגש לקונטרולר אקאונט ונבנה פונקציה כזאת.

  17. 07:00

    יש לנו פה public action result פונקציה שנקראת

לקורס המלא: קורס MVC אונליין בעברית

ההרצאה הקודמת: אבטחה - MVC Security - חלק 2

ההרצאה הבאה: אבטחה - MVC Security - חלק 4

הרצאות קשורות מקורסים אחרים

  • הסבר על MVC
  • Security Groups - חלק 1
  • אבטחה עם VM Templates
  • מושגי יסוד ב-Security

קורסים נוספים במסלול

  • קורס Entity Framework Core - עבודה עם מסד נתונים בדוט-נט
  • קורס דוט-נט - NET Core. - עם Rest API
  • קורס ASP.NET
  • קורס Git ו-GitHub עם Visual Studio