
Authorize מעל פעולה, והפעולה נגישה רק למשתמשים רשומים.AllowAnonymous, למשל דף הרשימה ודף הפרטים.הטקסט המלא של הדקות הראשונות בהרצאה «אבטחה - MVC Security - חלק 5» בקורס הווידאו של PracticU – כתוביות בעברית עם זמן התחלה לכל פסקה. כך תוכלו לקרוא ולחפש את הנושאים לפני שמתחילים ללמוד.
אז עד עכשיו אנחנו הצלחנו לעשות לוג-אין, לוג-אאוט ורג'יסטר ואחד הדברים החשובים שעשינו זה בפרודקטס הלכנו ומנענו גישה לפונקציה קריאט על ידי אטרידיוט authorized.
אוקיי, זה אומר שבכל פונקציה שאנחנו רוצים לבצע מניעת גישה למשתמשים לא רשומים אנחנו צריכים לשים את authorized.
זאת אומרת שאנחנו צריכים גם ללכת ל-update לבצע authorized וזה אומר שאנחנו גם צריכים ללכת ל-Delete ולבצע Authorized.
רק אם אתה משתמש רשום, אתה יכול למחוק. אבל איך אנחנו גורמים רק למי שלדוגמה הוא אדמיניסטרטור או מנהל לבצע פעולה כלשהי? או לחילופין, איך אנחנו מאפשרים רק ליוזר מסוים בעל שם בוא נניח מוישה לבצע פעולה כלשהי?
זה מתבצע בצורה מאוד פשוטה, כי Authorized מסוגלת לקבל רשימת פרמטרים לדוגמה Users. כאן אנחנו נותנים רשימה מופרדת על ידי פסיקים, אנחנו רוצים לאפשר רק למוישה, פסיק, פיפי, פסיק ואוגי לבצע delete.
לחילופין אנחנו יכולים להגדיר משהו אחר, אנחנו יכולים להגדיר רק אם אתה ברול תפקיד מסוים שהוגדר לך על ידי המערכת, אם אתה אדמין או מנאג'ר, רק לכם אנחנו מאשרים לבצע delete.
זאת אומרת שה-attribute authorize, איזה פילטר סך הכל מאפשר לבדוק ממי אתה ורק ככה יכול לאפשר לנו לגשת לאקשן הדרושים. במידה ואין בו כלום כלומר רק הגדרנו authorized אתה חייב להיות רשום במערכת ואז רק תוכל להגיע לפונקציה.
במידה ואין על האקשן שום authorized זה אומר שאתה יכול להיכנס כרגע לפונקציה בלי בעיה. אם היינו שמים את authorized על הקונטרולר ואומר שהיינו מונעים גישה מכל הרכיבים בקונטרולר, מכל האקשנים בקונטרולר.
עכשיו, אם נסתכל נראה ששני האקשנים בקונטרולר אנחנו רוצים לאפשר גישה לאנשים, אבל יש לנו אחד, שתיים, שלוש, ארבע, חמישה אקשנים שאנחנו רוצים למנוע.
אז אולי היה עדיף לשים את האקשן, את ה-autorized כאן למעלה ולאפשר גישה לאלה. זה מתבצע על ידי allow anonymous במקרה הזה מה שאנחנו עושים אנחנו חוסמים את הגישה לכל האקשנים בקונטרולר ומאפשרים גישה רק לindex ולdetail זאת אומרת גם מי ש-anonymous וגם מי ש-register יוכל להגיע לindex ולdetail