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

30 בנובמבר 2009

תגיות: , , ,
אין תגובות

 


במידה וירשתם מ – 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;


    }


}


 

הוסף תגובה
facebook linkedin twitter email

כתיבת תגובה

האימייל לא יוצג באתר. שדות החובה מסומנים *