
_LoginPartial בתיקייה Shared, כדי שניתן יהיה להכניס אותו ל-Layout.Request.IsAuthenticated.User.Identity.Name, וכפתור Sign out.display inline).FormsAuthentication.SignOut() ואז מפנה לדף המוצרים.הטקסט המלא של הדקות הראשונות בהרצאה «אבטחה - MVC Security - חלק 3» בקורס הווידאו של PracticU – כתוביות בעברית עם זמן התחלה לכל פסקה. כך תוכלו לקרוא ולחפש את הנושאים לפני שמתחילים ללמוד.
כעת אחרי שפונקציית הלוגין מוכנה בואו נאפשר למשתמש להיכנס אליה על ידי לינק ייעודי ללוגין כמו כן נאפשר לו לעשות לוגאאוט אז אם נריץ את האתר אנחנו יכולים לראות שהוא לא רואה שום דבר שקשור ללוגין אנחנו רוצים פה למעלה לבצע לו איזשהו לינק של לוגין ובמידה והוא כבר קיים להגיד לו בוא נגיד היי
ואת היוזרניים שלו ולאפשר לו גם לבצע לוגאאוט אז אנחנו רוצים לראות את הלינק הזה בעצם בכל הדפים, לכן אנחנו צריכים להגדיר את הלינק ב-Layout.
אבל יש לנו פה טיפה קוד לרשום, ולכן מה שרצוי לבצע זה לבצע partial view עבור הקטע קוד הזה. בואו נלך ל-shared ונוסיף כאן view, נגדיר אותו כ-partial ונגדיר view מיוחד עבור ה-login.
נקרא ל-view הזה underline:login:partial, כאן אנחנו הולכים לרשום את הקטע קוד שיאפשר למשתמש לראות לינק של לוגין ולינק של לוג אאוט. אבל איך אנחנו יכולים לגשת מפה לצד של השרת?
הרי אם היינו ב-view רגיל, אז כמובן יש לנו את הקונטרולר ואת האקשן שלו בצד של השרת ואנחנו יכולים לקרוא לפונקציות c-sharp בשביל לדעת האם המשתמש מחובר או לא מחובר.
אם אנחנו נמצאים ב-partial view אין לנו מאחורה בעצם ברוב המקרים איזשהו אקשן שמשרת אותנו. ולכן מה שאנחנו יכולים לעשות זה פשוט להשתמש בקוד Razor בשביל לבנות קוד סאט שרת.
אז אנחנו יכולים להגדיר if לגשת ל-request is authenticated. האם הבן אדם כרגע רשום או לא רשום? וכמובן יש לנו את החלק של ה-elf. הרי אנחנו לא רוצים כל הזמן להראות לו לינק של לוגין.
אם הבן אדם כבר ביצע לוגין אנחנו רוצים להעלים את הלינק של הלוגין ולהראות לו לינק של לוג-אאוט. אוקיי, מה אנחנו עושים בתוך הקטע קוד שהתבצע במידה והוא לוגין?
קודם כל אנחנו רוצים להגדיר פה מספר דברים שקשורים גם לעולם הטקסט, אז נגדיר פה את התגית טקסט. בתוכה נגדיר Hello ואנחנו רוצים לרשום את השם שלו.
זה יהיה בuser.identity name. user.identity זה בעצם המידע לגבי היוזר שכרגע מחובר, ושם המשתמש. בואו נגדיר קו הפרדה כזה ולאחר מכן נפתח כאן איזשהו פורם מפני שמה שאנחנו רוצים לעשות זה להציג לינק עבור signout אז אם אנחנו רוצים להציג לינק עבור signout אנחנו רוצים שהלינק יצביע לנו על action signout שנמצאת בתוך ה-controller account
בשביל לבצע לינק אנחנו צריכים דרך javascript לקרוא לאקשן הזה כי לינק לא by default קוראים JavaScript בגלל שאנחנו צריכים להפעיל פה JavaScript אז רצוי שיהיה לנו פה איזשהו פורם ונתחיל להגדיר לו מספר הגדרות דבר ראשון אנחנו מגדירים את ה-action name שלו action name sign out דבר הבא
לאיזה קונטרולר זה נמצא זה נמצא באקאונט דבר הבא אנחנו רוצים להגדיר מה בעצם ה-form method אנחנו רוצים שהוא יהיה בפוסט. הדבר הבא שאנחנו רוצים להגדיר זה פרמטר עבור הפורם שנקרא ID, ולכן יש לנו פה אפשרות להגדיר בפורם HTML Attributes.
אז נגדיר משתנה new ID שווה find out form. לאחר מכן נסגור כאן את הפונקציה של begin form, נסגור את ה-using ובתוך אנחנו יכולים להגדיר את הלינק.
יש לנו a href ואנחנו מגדירים פה את ה-JavaScript שאנחנו רוצים JavaScript נקודותיים מריץ לנו פונקציית JavaScript או קוד JavaScript בתוך לינק הפונקציה שאנחנו רוצים להריץ זה איתור הפורם הנוכחי זה יהיה על ידי document.getElementByID נאתר את הפורם שקראנו לו
signout.form ונקרא לפונקציה submit הלינק הזה יראה את המילה signout באלס במידה והמשתמש לא רשום אנחנו רוצים לקרוא ל-HTML לרשום לו לוגין כדי שהוא יוכל לבצע לוגין ומפנים אותו לאקשן שנקראת לוגין שנמצאת בקונטרולר אקאונט.
עכשיו כמובן שצריכה להיות לנו פונקציית submit או ליתר דיוק פונקציית signout בקונטרולר אקאונט. אז בואו ניגש לקונטרולר אקאונט ונבנה פונקציה כזאת.
יש לנו פה public action result פונקציה שנקראת