משיב מוביל
ASP.NET Membership

שאלה
-
שלום אני מתכנת אתר בmvc3 תוך שימוש בASP.NET Membership
אני מעוניין להוסיף לינק בדף מסוים שיהיה רק ל admin איך אני בודק אם המשתמש הנוכחי הוא admin ?
יום שלישי 20 מרץ 2012 13:01
תשובות
-
עובדים עם atribute של אוטונטיקציה בשם Authorize. אני מציע לעבור על כל אחד מהמדריכים של מיקירוסופט למתחילים ב MVC כי זה מופיע בכולם.
ניתן למשל להגביל כניסה למשתמש מסויים או למשתמשים בקבוצה עם חוק הרשאה מסויים בעזרת ע"י רישום מעל המתודה (או המחלקה או כל בלוק אלמנט) שרוצים שתהיה מוגבלת בכניסה למשתמש מסויים את ה atribute הבא (דוגמה לשימוש בחוק):
[Authorize(Roles = "Administrator")]
אם אתה רוצה קטע מסויים ב VIEW לא להציג אז אתה יכול לעשות שימוש ב IF פשוט ולבדוק הרשאות של המשתמש למשל על ידי
if (!filterContext.HttpContext.User.Identity.IsAuthenticated)
או משהו כזה בהתאם לתנאים שלך
- נערך על-ידי pituachMVP, Editor יום שלישי 20 מרץ 2012 14:43
- הוצע כתשובה על-ידי Ido Flatow. _Moderator יום שלישי 20 מרץ 2012 17:27
- סומן כתשובה על-ידי yspo יום שלישי 20 מרץ 2012 21:42
יום שלישי 20 מרץ 2012 14:41משיב -
נסי משהו כדוגמת זה:
Roles.IsUserInRole("Admins")
זה בהנחה ויש למנגנון ההרשאות שלך Role בשם Admins
Please mark posts as answers/helpful if it answers your question.
Senior Consultant on WCF, ASP.NET, Siverlight, and Entity Framework. Author of Microsoft's Official WCF 4 Course. Co-author of the Microsoft HPC/Azure burst whitepaper.
Visit my blog: http://blogs.microsoft.co.il/blogs/idof
- נערך על-ידי Ido Flatow. _Moderator יום שלישי 20 מרץ 2012 22:36
- סומן כתשובה על-ידי yspo יום רביעי 21 מרץ 2012 07:04
יום שלישי 20 מרץ 2012 22:35מנחה דיון -
אני מאוד ממליץ לך לא לנסות לקבל הכל עם כפית של כסף כמו שאומרים. זה לא יעזור לך להתקדם כמפתח.
כתבתי לך דוגמה ממנה יכולת להסיק הכל אם הייתה מנסה אותה. לשמחתינו יש ב VS תכונה של intellisense שמאפשרת לנו לכתוב קוד גם בלי שידענו מה הוא בדיוק כשהתחלנו לכתוב את ההוראה.
intellisense היא תכונה של השלמת ההקלדה. כאשר תקליד את הקוד שננתי לך ותרשום נקודה אז תקבל את כל האפשרויות שיש לך...
אז אם אתה לא רוצה להישתמש בתכונה IsAuthenticated כי הבנת שהיא לא מתאימה לך היית יכול לבחור את התכונה name ולקבוע לפי שם משתמש מסויים. ואם זה גם לא מתאים אז תוכל לבחור לפי Roles או כל דבר אחר. הבסיס זהה :-)
לסינון לפי שם משתמש אתה יכול להעזר בכך:
if (HttpContext.User.Identity.Name=="Admin") { }
* תמיד מומלץ לחקור את האפשרויות שיש ולנצל את ה intellisense כדי ללמוד דברים חדשים.
אני מקווה שזה עוזר גם מעבר לתשובה מסויימת לשאלה :)
- סומן כתשובה על-ידי yspo יום רביעי 21 מרץ 2012 07:04
- נערך על-ידי pituachMVP, Editor יום רביעי 21 מרץ 2012 07:27
יום רביעי 21 מרץ 2012 07:01משיב
כל התגובות
-
עובדים עם atribute של אוטונטיקציה בשם Authorize. אני מציע לעבור על כל אחד מהמדריכים של מיקירוסופט למתחילים ב MVC כי זה מופיע בכולם.
ניתן למשל להגביל כניסה למשתמש מסויים או למשתמשים בקבוצה עם חוק הרשאה מסויים בעזרת ע"י רישום מעל המתודה (או המחלקה או כל בלוק אלמנט) שרוצים שתהיה מוגבלת בכניסה למשתמש מסויים את ה atribute הבא (דוגמה לשימוש בחוק):
[Authorize(Roles = "Administrator")]
אם אתה רוצה קטע מסויים ב VIEW לא להציג אז אתה יכול לעשות שימוש ב IF פשוט ולבדוק הרשאות של המשתמש למשל על ידי
if (!filterContext.HttpContext.User.Identity.IsAuthenticated)
או משהו כזה בהתאם לתנאים שלך
- נערך על-ידי pituachMVP, Editor יום שלישי 20 מרץ 2012 14:43
- הוצע כתשובה על-ידי Ido Flatow. _Moderator יום שלישי 20 מרץ 2012 17:27
- סומן כתשובה על-ידי yspo יום שלישי 20 מרץ 2012 21:42
יום שלישי 20 מרץ 2012 14:41משיב -
תודה רבה.
הקוד הזה שכתבת
if (!filterContext.HttpContext.User.Identity.IsAuthenticated)
הוא בודק אם המשתמש מחובר. אבל הוא לא בודק אם הוא Administrator
אני רוצה להוסיף קוד באתר שרקAdministrator יראה
איך עושים את זה?
יום שלישי 20 מרץ 2012 21:34 -
נסי משהו כדוגמת זה:
Roles.IsUserInRole("Admins")
זה בהנחה ויש למנגנון ההרשאות שלך Role בשם Admins
Please mark posts as answers/helpful if it answers your question.
Senior Consultant on WCF, ASP.NET, Siverlight, and Entity Framework. Author of Microsoft's Official WCF 4 Course. Co-author of the Microsoft HPC/Azure burst whitepaper.
Visit my blog: http://blogs.microsoft.co.il/blogs/idof
- נערך על-ידי Ido Flatow. _Moderator יום שלישי 20 מרץ 2012 22:36
- סומן כתשובה על-ידי yspo יום רביעי 21 מרץ 2012 07:04
יום שלישי 20 מרץ 2012 22:35מנחה דיון -
אני מאוד ממליץ לך לא לנסות לקבל הכל עם כפית של כסף כמו שאומרים. זה לא יעזור לך להתקדם כמפתח.
כתבתי לך דוגמה ממנה יכולת להסיק הכל אם הייתה מנסה אותה. לשמחתינו יש ב VS תכונה של intellisense שמאפשרת לנו לכתוב קוד גם בלי שידענו מה הוא בדיוק כשהתחלנו לכתוב את ההוראה.
intellisense היא תכונה של השלמת ההקלדה. כאשר תקליד את הקוד שננתי לך ותרשום נקודה אז תקבל את כל האפשרויות שיש לך...
אז אם אתה לא רוצה להישתמש בתכונה IsAuthenticated כי הבנת שהיא לא מתאימה לך היית יכול לבחור את התכונה name ולקבוע לפי שם משתמש מסויים. ואם זה גם לא מתאים אז תוכל לבחור לפי Roles או כל דבר אחר. הבסיס זהה :-)
לסינון לפי שם משתמש אתה יכול להעזר בכך:
if (HttpContext.User.Identity.Name=="Admin") { }
* תמיד מומלץ לחקור את האפשרויות שיש ולנצל את ה intellisense כדי ללמוד דברים חדשים.
אני מקווה שזה עוזר גם מעבר לתשובה מסויימת לשאלה :)
- סומן כתשובה על-ידי yspo יום רביעי 21 מרץ 2012 07:04
- נערך על-ידי pituachMVP, Editor יום רביעי 21 מרץ 2012 07:27
יום רביעי 21 מרץ 2012 07:01משיב -
במדריך ASP.NET MVC באתר WebMaster תוכל למצוא מידע מפורט כיצד לקנפג את שירות ה-Membership ו-Roles ולעבוד איתם מתוך ASP.NET MVC
הנה הלינק:
יום ראשון 25 מרץ 2012 14:00מנחה דיון