• דף הבית
  • קטגוריות
  • פוסטים אחרונים
  • משתמשים
  • חיפוש
  • חוקי הפורום
כיווץ
תחומים

תחומים - פורום חרדי מקצועי

UserInRole מחזיר שקר אחרי הוספת Role. איך אוכפים אתו לבדוק שנית ולא להסתמך על הקאש שלו

מתוזמן נעוץ נעול הועבר תכנות
7 פוסטים 2 כותבים 490 צפיות
    • מהישן לחדש
    • מהחדש לישן
    • הכי הרבה הצבעות
תגובה
  • תגובה כנושא
התחברו כדי לפרסם תגובה
נושא זה נמחק. רק משתמשים עם הרשאות מתאימות יוכלו לצפות בו.
  • clickoneC מנותק
    clickoneC מנותק
    clickone
    כתב ב נערך לאחרונה על ידי
    #1

    פרוייקט asp mvc

    כשאני מוסיף למשתמש role אז הוא מחזיר לי שהrole לא קיים למרות שהוא כן קיים.
    בשביל שהמשתמש יוכל "להנות" מהאפשרויות של ההרשאה החדשה, הוא צריך לצאת ולהיכנס מחדש.
    אבל חמור מכך 😞 אם הורדתי לו הרשאה, היא תישאר בתוקף עד היציאה והכניסה הבאה שלו. שזה כבר מסוכן.....

    שאלתי את הרב גוגל, ומצאתי תשובה בסטאק
    קוד הפיתרון שם:

    private async Task SignInAsync(User user, bool isPersistent)
        {
            AuthenticationManager.SignOut(DefaultAuthenticationTypes.ExternalCookie);
            var identity = await UserManager.CreateIdentityAsync(user, DefaultAuthenticationTypes.ApplicationCookie);
            AuthenticationManager.SignIn(new AuthenticationProperties() { IsPersistent = isPersistent }, identity);
        }
    

    בעצם הרעיון הוא להוציא ולהחזיר את המשתמש ברקע בלי שירגיש.

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

    אני מחפש רעיון או פיתרון יותר אלגנטי מאשר לכתוב פונקצייה משלי שתבדוק כל פעם ישירות מול הDB. (איזה קמצן אני בפניות לDB...)

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

    רעיונות?

    אין טסט כמו פרודקשן.

    המייל שלי urivpn@gmail.com

    תגובה 1 תגובה אחרונה
    0
  • dovidD מנותק
    dovidD מנותק
    dovid ניהול
    כתב ב נערך לאחרונה על ידי
    #2

    לא נראה לי שיש פתרון.
    תוכל ליצור פילטר authorize משלך, ואז תוכל לעשות שהוא משתמש בקאש אבל בקשה ספציפית (למשל /refreshRols) תרענן אותו, ואז תוכל להריץ את כשתידע שהDB השתנה וממילא הפילטר ירשה.

    אפשר ליצור קשר dovid@tchumim.com

    תגובה 1 תגובה אחרונה
    1
  • dovidD מנותק
    dovidD מנותק
    dovid ניהול
    כתב ב נערך לאחרונה על ידי
    #3

    כעת חשבתי על רעיון נוסף, שתוכל לרשת מהautorize ומתי שהוא ידחה אותו, אז תבצע לוגאין מחדש, ותנסה שוב. צריך לבדוק את זה.

    אפשר ליצור קשר dovid@tchumim.com

    clickoneC תגובה 1 תגובה אחרונה
    1
  • clickoneC מנותק
    clickoneC מנותק
    clickone
    השיב לdovid ב נערך לאחרונה על ידי
    #4

    @dovid השאלה אם זה יועיל גם מאפליקציה לאפליקצייה
    וגם לכאורה אז שוב עשיתי קריאה לDB. אז אני יכול לעשות מפורש קריאה לDB עם פונקצייה משלי. לא? (שוב, אני מתקמצן על הקריאה לDB.)
    תודה.
    אבדוק ואעדכן...

    אין טסט כמו פרודקשן.

    המייל שלי urivpn@gmail.com

    תגובה 1 תגובה אחרונה
    0
  • dovidD מנותק
    dovidD מנותק
    dovid ניהול
    כתב ב נערך לאחרונה על ידי
    #5

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

    אפשר ליצור קשר dovid@tchumim.com

    clickoneC תגובה 1 תגובה אחרונה
    1
  • clickoneC מנותק
    clickoneC מנותק
    clickone
    השיב לdovid ב נערך לאחרונה על ידי
    #6

    @dovid מה שמלחיץ אותי זה המקרה ההפוך.
    שיש הרשאה למשתמש בסשן, ותכלס הסרתי לו את ההרשאה.

    אין טסט כמו פרודקשן.

    המייל שלי urivpn@gmail.com

    dovidD תגובה 1 תגובה אחרונה
    0
  • dovidD מנותק
    dovidD מנותק
    dovid ניהול
    השיב לclickone ב נערך לאחרונה על ידי
    #7

    @clickone אמר בUserInRole מחזיר שקר אחרי הוספת Role. איך אוכפים אתו לבדוק שנית ולא להסתמך על הקאש שלו:

    @dovid מה שמלחיץ אותי זה המקרה ההפוך.
    שיש הרשאה למשתמש בסשן, ותכלס הסרתי לו את ההרשאה.

    אז אתה חייב לכתוב פילטר משלך ולאותת לו על כל שינוי במסד.

    אפשר ליצור קשר dovid@tchumim.com

    תגובה 1 תגובה אחרונה
    0

  • התחברות

  • אין לך חשבון עדיין? הרשמה

  • התחברו או הירשמו כדי לחפש.
  • פוסט ראשון
    פוסט אחרון
0
  • דף הבית
  • קטגוריות
  • פוסטים אחרונים
  • משתמשים
  • חיפוש
  • חוקי הפורום
  • התחברות

  • אין לך חשבון עדיין? הרשמה

  • התחברו או הירשמו כדי לחפש.