DCSIMG
System.ArgumentNullException: Key cannot be null. Membership.UpdateUser - שלמה גולדברג (הרב דוטנט)

שלמה גולדברג (הרב דוטנט)

מרצה בסלע ויועץ בעולם ה - net.

System.ArgumentNullException: Key cannot be null. Membership.UpdateUser

 

במידה וירשתם מ - MembershipProvider ומ - Membership יש סיכוי טוב מאוד שכשתנסו להפעיל את מתודת Membership.UpdateUser תקבלו שגיאה
System.ArgumentNullException: Key cannot be null
 
 
זה קצת מוזר כי גם אם הגדרתם בקונפיג את ה - defaultProvider למימוש שלכם זה עדיין יקרה, מכיון של - Membership יש שני בנאים הראשון מוגדר כ - protected והוא לא מקבל שום פרמטרים, השני מוגדר כ - public ומקבל כל מיני פרמטרים שאחד מהם הוא ה - providerName.
 
ברגע שהפעלתם את הבנאי ללא שום פרמטר הוא לא יודע לאיזה provider ללכת ולכן הוא נופל בקטע קוד הזה
 

internal virtual void Update()

{

    Membership.Providers[this.ProviderName].UpdateUser(this);

    this.UpdateSelf();

}

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

public override string ProviderName

{

    get

    {

        return Membership.Provider.Name;

    }

}

 
פורסם: Nov 30 2009, 06:57 PM by Shlomo | with no comments
תגים:, , ,
שלח תגובה

(שדה חובה)  

(שדה חובה)  

(אופציונלי)

(שדה חובה) 

Please add 1 and 5 and type the answer here:


Enter the numbers above: