ABA


"למה הדף שיורש את ה-LAYOUT מתרנדר לפני ה-LAYOUT"
גירסת הדפסה        
קבוצות דיון פיתוח, תיכנות ובניית אתרים נושא #21018 מנהל    סגן המנהל    מפקח   Winner    צל"ש   מומחה  
אשכול מספר 21018
fly
חבר מתאריך 23.7.13
668 הודעות, 1 פידבק
   20:48   06.12.14   
אל הפורום  
  למה הדף שיורש את ה-LAYOUT מתרנדר לפני ה-LAYOUT  
 
   MVC.NET

יש לי פונקציה ב-LAYOUT שבודקת אם יש עוגיה למשתמש עם הפרטים שלו
במידה ויש נחבר אותו

הבעיה שכנראה MVC מריץ את הקוד של הבן(INDEX) לפני ה- LAYOUT

ולכן זה קודם בודק אם המשתמש מחובר

ורק לאחר מכן מחבר אותו במידה ויש לו עוגייה

שזה הפוך להגיון

לכן עכשיו אצטרך לשים את הפונקציה כדלהלן בכל עמוד באתר במקום לחסוך ולשים רק ב-LAYOUT
BL.funcs.userConnetion();

http://jsfiddle.net/L7f35mb0/

יש פיתרון לזה?


                                שתף        
מכתב זה והנלווה אליו, על אחריות ועל דעת הכותב בלבד

  האשכול     מחבר     תאריך כתיבה     מספר  
  לא יודע מה קורה אצלך אבל VeNom  07.12.14 08:39 1
     למה גרוע? fly 07.12.14 11:46 2
         להציג משהו למישהו שמחובר זה בסדר.. VeNom  07.12.14 22:56 3
             אני אסביר שוב fly 08.12.14 00:29 4
                 אתה עדיין לא מבין שזה בעיה? VeNom  08.12.14 08:08 5
                     בסדר, אבל לא כל כך הבנתי את התחביר אתה יכול לעזור לי קצת fly 10.12.14 19:24 6
  כתבתי לך תגובה ארוכה ומפורטת אבל הייתה שגיאה בשליחה, dvir8 11.12.14 01:11 7
     עדיין לא ברור לי fly 11.12.14 03:29 8
         כתבתי כאן מה בדיוק אני רוצה fly 11.12.14 14:17 9
             לא מאמין בקטע הזה שיהודים יותר חכמים... בכל מקרה dvir8 12.12.14 12:48 11
     הצלחתי את החלק של ההרשאות אבל את החלק של העוגיה עדיין לא הצלחתי fly 11.12.14 22:41 10

       
VeNom  לחץ כאן להצגת דירוג המשתמש
חבר מתאריך 7.6.02
7922 הודעות, 1 פידבק
   08:39   07.12.14   
אל הפורום  
  1. לא יודע מה קורה אצלך אבל  
בתגובה להודעה מספר 0
 
   למה הקוד הזה נמצא בכלל ב LAYOUT? אז מה אם הוא מתרנדר בסרבר?
קודם כל לטובת authentication בדוטנט יש לך אחלה תמיכה. הנה לינק אחד שמצאתי:
http://www.codeproject.com/Articles/98950/ASP-NET-authentication-and-authorization

זה יתן לך בילט אין "חיבור" אם יש עוגיה. זה יתן לך לסמן קונטרונלים\אקשנים שאתה רוצה שרק אנשים מחוברים יכנסו וכו'..


אם בכל זאת לא בחרת להשתמש בזה אלא במשהו משלך אז תקרא קצת על http modules ותכין מודול שידאג בכל request לחבר יוזר אם יש לו את העוגיה שלך.
לעשות את זה ב layout זה ממש גרוע..עדיין לא שמעתי על משהו יותר הזוי מזה..


                                                         (ניהול: מחק תגובה)
מכתב זה והנלווה אליו, על אחריות ועל דעת הכותב בלבד
fly
חבר מתאריך 23.7.13
668 הודעות, 1 פידבק
   11:46   07.12.14   
אל הפורום  
  2. למה גרוע?  
בתגובה להודעה מספר 1
 
   יש לי כפתור התנתקות
אני רוצה להראות אותו רק למי שמחובר
אני רוצה שהכפתור יהיה בכל דף
לכן אני שם אותו ב-layout
ואם המשתמש מחובר session או cookie אז אני מציג לו את הכפתור


                                                         (ניהול: מחק תגובה)
מכתב זה והנלווה אליו, על אחריות ועל דעת הכותב בלבד
VeNom  לחץ כאן להצגת דירוג המשתמש
חבר מתאריך 7.6.02
7922 הודעות, 1 פידבק
   22:56   07.12.14   
אל הפורום  
  3. להציג משהו למישהו שמחובר זה בסדר..  
בתגובה להודעה מספר 2
 
   אבל אני מצטט אותך:

"יש לי פונקציה ב-LAYOUT שבודקת אם יש עוגיה למשתמש עם הפרטים שלו
במידה ויש נחבר אותו"


                                                         (ניהול: מחק תגובה)
מכתב זה והנלווה אליו, על אחריות ועל דעת הכותב בלבד
fly
חבר מתאריך 23.7.13
668 הודעות, 1 פידבק
   00:29   08.12.14   
אל הפורום  
  4. אני אסביר שוב  
בתגובה להודעה מספר 3
 
   אני מעוניין לבדוק האם משתמש מחובר

כדי להציג לו, או לא להציג לו דברים

לכן אני שם בקוד של הlayout הכי למעלה

פונקציה שתעשה השמה ל-session עם ה-id של המשתמש

במידה שאכן יש לו עוגיה


לאחר מכן אני עושה if מעל כל אלמנט שאני רוצה להציג או להסתיר

ושואל האם ה-session ריק או לא

הבעיה ש-mvc מריץ קודם את הקוד של הדף שיורש מהמסטר

לכן זה קודם שואל אם קיים session שזה הפוך למה שרציתי



                                                         (ניהול: מחק תגובה)
מכתב זה והנלווה אליו, על אחריות ועל דעת הכותב בלבד
VeNom  לחץ כאן להצגת דירוג המשתמש
חבר מתאריך 7.6.02
7922 הודעות, 1 פידבק
   08:08   08.12.14   
אל הפורום  
  5. אתה עדיין לא מבין שזה בעיה?  
בתגובה להודעה מספר 4
 
   עזוב מה מתרנדר לפני מה ולמה..
אתה עושה השמה ל SESSION של משתמש מקובץ LAYOUT..
זה "יעבוד" כי הדף נוצר בסרבר אבל זה ממש ממש ממש לא המקום.
תקרא על httpmodules..או על פילטרים..זה המקום המתאים לעשות משהו כזה בהנחה ואתה לא משתמש במשהו שדוטנט נותן לך(אחלה מנגנון authentication).


                                                         (ניהול: מחק תגובה)
מכתב זה והנלווה אליו, על אחריות ועל דעת הכותב בלבד
fly
חבר מתאריך 23.7.13
668 הודעות, 1 פידבק
   19:24   10.12.14   
אל הפורום  
  6. בסדר, אבל לא כל כך הבנתי את התחביר אתה יכול לעזור לי קצת  
בתגובה להודעה מספר 5
 
   http://jsfiddle.net/h10nq00w/3/

בקישור המצורף מופיע כפתור ההתנתקות
בפונקציה אני שואל האם קיים session או עוגיה
אם כן אז תציג את האלמנט כפתור התנתקות

איך אני מגדיר את זה במערכת ההרשאות המובנית ומשייך לכפתור?


בחלק השני בקישור

אני נכנס לפונקציה שמחזירה מסך מנהל
אני שואל אם יש לו הרשאה ,במידה ויש לו נחזיר לו מסך מנהל, במידה ואין נחזיר לו את מסך הראשי

איך אני מגדיר את זה גם במערכת ההרשאות



                                                         (ניהול: מחק תגובה)
מכתב זה והנלווה אליו, על אחריות ועל דעת הכותב בלבד
dvir8
חבר מתאריך 13.5.02
5929 הודעות
   01:11   11.12.14   
אל הפורום  
  7. כתבתי לך תגובה ארוכה ומפורטת אבל הייתה שגיאה בשליחה,  
בתגובה להודעה מספר 0
 
   ערכתי לאחרונה בתאריך 11.12.14 בשעה 01:35 בברכה, dvir8
 
בכל מקרה אקצר מאוד ואהיה ישיר בלי להבין יותר מדי מה אתה מנסה לעשות ולהציע לך דרכים טובות יותר כמו ש Venom אמר.

בקיצור
את הפונקציה של הבדיקה יש לשים ב session_start שזה נמצא בקובץ global.asax

ב MVC אתה מקבל במתנה אפשר להגיד שירות אוטנטיקציה.
יש לך אפשרות בתוך קבצי VIEW פשוט לשאול האם היוזר מחובר באמצעות


Websecurity.IsAuthenticated

המחלקה של Websecurity מקושרת לפרוביידר ש Venom רשם לך או הפרוביידר הבסיסי שמגיע עם Mvc.

פשוט תפתח פרוייקט חדש ב MVC
אם אני לא טועה זה נקרא BASIC ואז אתה תראה שהוא מייצר לך AccountController עם דף Login וכד'. פשוט תתקין ויז'ואל סטודיו הכי חדש.


                                                         (ניהול: מחק תגובה)
מכתב זה והנלווה אליו, על אחריות ועל דעת הכותב בלבד
fly
חבר מתאריך 23.7.13
668 הודעות, 1 פידבק
   03:29   11.12.14   
אל הפורום  
  8. עדיין לא ברור לי  
בתגובה להודעה מספר 7
 
   אני רואה שיש if (Request.IsAuthenticated)

מעל html שיש לו הרשאה

אבל איפה אני מגדיר את מה שאני מפרש כהרשאה


ואם יש לי באותו עמוד כפתור של מנהל וכפתור של אורח

איזה if אני אמור לכתוב מעל הכפתור של המנהל במקום if (Request.IsAuthenticated)


אני רואה שמעל פונקציות שאני רוצה לחשוף לכולם אני שם AllowAnonymous

ומעל כל המחלקה עם הפונקציות של המנהל כתוב Authorize

אבל איפה אני מגדיר את ההתנהגות שלהם אטרביוטים האלו


                                                         (ניהול: מחק תגובה)
מכתב זה והנלווה אליו, על אחריות ועל דעת הכותב בלבד
fly
חבר מתאריך 23.7.13
668 הודעות, 1 פידבק
   14:17   11.12.14   
אל הפורום  
  9. כתבתי כאן מה בדיוק אני רוצה  
בתגובה להודעה מספר 8
 
   ערכתי לאחרונה בתאריך 11.12.14 בשעה 14:20 בברכה, fly
 
http://stackoverflow.com/questions/27421163/how-to-create-custom-authorization?noredirect=1#comment43285703_27421163


בנתיים אין תוצאות, חוץ מחסימות

זה לא פלא שיהודים יותר חכמים

בגלל שהם עוזרים אחד לשני

אצל הגוים, אמרת משהו שלא נראה להם טוב בעין וכבר לא יעזרו לך


                                                         (ניהול: מחק תגובה)
מכתב זה והנלווה אליו, על אחריות ועל דעת הכותב בלבד
dvir8
חבר מתאריך 13.5.02
5929 הודעות
   12:48   12.12.14   
אל הפורום  
  11. לא מאמין בקטע הזה שיהודים יותר חכמים... בכל מקרה  
בתגובה להודעה מספר 9
 
   בוא נתחיל שניה מהנתחלה כדי שנדבר באותה שפה...

איזה סוג פרוייקט פתחת? עם איזו גרסה של mvc אתה עובד?
לדוגמא MVC 4


האם יש לך כבר מערכת ניהול משתמשים קיימת ? (Database עם טבלאות משתמשים וכו')


לגבי ה Attributes. הם בסה"כ הרשאות שאתה קובע מי רשאי להגיע ל controller/Method

במידה והמשתמש לא רשאי להגיע או שהוא לא מחובר לאתר ואתה ביקשת שהוא כן יהיה ב Attribute אז באופן אוטומטי הוא מועבר לדף ה login.
כמובן שזה משהו שניתן לשינוי ואתה יכול לעשות כל מה שאתה רוצה ברגע שהוא מנסה להגיע ל controller כשהוא לא מחובר אבל בברירת המחדל זה מעביר לדף ה Login.

במידה ואין לך סבלנות לכל השיחה תכנס ללינק הזה ותראה מה הוא עושה:
http://www.codeproject.com/Articles/482546/Creating-a-custom-user-login-form-with-NET-Csharp


                                                         (ניהול: מחק תגובה)
מכתב זה והנלווה אליו, על אחריות ועל דעת הכותב בלבד
fly
חבר מתאריך 23.7.13
668 הודעות, 1 פידבק
   22:41   11.12.14   
אל הפורום  
  10. הצלחתי את החלק של ההרשאות אבל את החלק של העוגיה עדיין לא הצלחתי  
בתגובה להודעה מספר 7
 
   זה פתר את ההרשאות
http://usmansidea.blogspot.co.il/2013/07/aspnet-mvc-custom-authorization-using.html


                                                         (ניהול: מחק תגובה)
מכתב זה והנלווה אליו, על אחריות ועל דעת הכותב בלבד

תגובה מהירה  למכתב מספר: 
 
___________________________________________________________________

___________________________________________________________________
למנהלים:  נעל | תייק בארכיון | מחק | העבר לפורום אחר | מחק תגובות | עגן אשכול
       



© כל הזכויות שמורות ל-רוטר.נט בע"מ rotter.net