PracticU

שימוש ב-ConnectionString
המוגדרת כ-App Secret

בלי כתוביותעם כתוביות
PracticU › קורס Entity Framework Core - עבודה עם מסד נתונים בדוט-נט › שימוש ב-ConnectionString המוגדרת כ-App Secret
מילון מושגים:
מחרוזת - סוג נתונים שמייצג רצף של תווים, כלומר טקסט, ומשמש לאחסון מילים, משפטים או כל רצף סימנים.
JSON - פורמט טקסט קריא לייצוג נתונים מובְנים כזוגות מפתח-ערך, נפוץ להחלפת מידע בין שרת ללקוח.
חבילה - אוסף ארוז של קוד, ספריות או קבצים המופץ כיחידה אחת ומותקן בעזרת מנהל חבילות.
מחלקה - תבנית בתכנות מונחה עצמים שמגדירה אילו נתונים ופעולות יהיו לאובייקטים שנוצרים ממנה.
לוג - רישום מתועד של אירועים ופעולות שמתרחשים במערכת או בתוכנה, המשמש למעקב ולאיתור תקלות.
באג - תקלה או שגיאה בקוד שגורמת לתוכנה להתנהג בניגוד למצופה.
נתיב - מחרוזת שמתארת את מיקומו של קובץ או תיקייה במערכת הקבצים, או כתובת של משאב בתוך אתר.
סיסמה - מחרוזת תווים סודית שמשמשת לאימות זהות המשתמש בעת כניסה למערכת. ככל שהיא ארוכה ומורכבת יותר, כך קשה יותר לנחש אותה.

שימוש ב-ConnectionString המוגדרת כ-App Secret
אחרי שהוגדר App Secret עם ה-Connection String, ההרצאה מראה איך האפליקציה קוראת אותו משם במקום מ-appsettings.json.
השלבים העיקריים
1. התקנת חבילה: מתקינים את Microsoft.Extensions.Configuration.UserSecrets שקוראת מידע מה-App Secret.
2. שינוי ב-AppConfig: המחלקה מחזיקה אובייקט IConfigurationRoot. כבר הוגדר בה AddJsonFile ל-appsettings.json, ועכשיו מוסיפים AddUserSecrets מסוג Program. כך הוא יודע לאיזה פרויקט הסודות שייכים. מה שלא חסוי, כמו כתובת שרת מרוחק או מיקום הלוגים, נשאר ב-appsettings.
3. קריאה חד-פעמית: מגדירים שדה public static readonly string ConnectionString וקוראים את המידע פעם אחת, במקום לגשת לאובייקט הקונפיגורציה בכל גישה לדאטה בייס. זה לא חובה, אבל יותר אלגנטי.
4. שם המפתח: קוראים לפי GiftShop, כי בהגדרת הסוד המפתח היה ConnectionStrings:GiftShop.
5. בדיקה: מריצים את display all gifts בקונפיגורציה הישנה ורואים שהמתנות מוצגות. אחר כך מעבירים לקונפיגורציה שמכילה גם appsettings וגם App Secrets.
6. התקלה בהדגמה: התוכנית קרסה עם not been initialized, כי הסוד נעלם מהפרויקט. המרצה לא יודע למה ומסביר שזה אולי באג. הוא הריץ שוב init ו-set, ואחרי זה הכל עבד.
7. אימות שהמחרוזת באמת מהסוד: כשהוא מוריד את ה-Connection String מ-appsettings וקורא רק מהקובץ, הקריאה נכשלת. עם AddUserSecrets היא מצליחה.
שימו לב
- אם הקריאה קורסת עם הודעה על חוסר אתחול, כדאי לבדוק בנתיב AppData\Roaming\Microsoft\UserSecrets שהסוד קיים ושהפרויקט מחובר אליו.
- הגדרות לא חסויות נשארות ב-appsettings, והסיסמאות והמפתחות מועברים ל-App Secrets.
בסוף אפשר לטעון Connection String מ-App Secret ולהשתמש בה בקוד.

פרקי ההרצאה: שימוש ב-ConnectionString המוגדרת כ-App Secret

  1. 00:00

    התקנת חבילת UserSecrets

  2. 00:45

    מחלקת ה-AppConfig

  3. 01:20

    הוספת AddUserSecrets לקונפיגורציה

תמלול ההרצאה: שימוש ב-ConnectionString המוגדרת כ-App Secret

הטקסט המלא של הדקות הראשונות בהרצאה «שימוש ב-ConnectionString המוגדרת כ-App Secret» בקורס הווידאו של PracticU – כתוביות בעברית עם זמן התחלה לכל פסקה. כך תוכלו לקרוא ולחפש את הנושאים לפני שמתחילים ללמוד.

  1. 00:02

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

  2. 00:23

    וזה נקרא install package microsoft.extensions, .configuration.userseekret בואו נעתיק אותו נדביק אותו איפשהו פה שניזכר שיהיה לנו נריץ והוא התקין לנו הדבר הבא שאנחנו רוצים לבצע זה לגשת ולראות איפה היה קוד שקורא את ה-connection string וזה היה ב-appconfig בואו נסתכל רגע על appconfig AppConfig זאת מחלקה חשובה

  3. 01:02

    שמגדירה את הקונפיגורציה ברמת האפליקציה שלנו ויש לנו פה אובייקט iConfigurationRoot שמחזיק את הקונפיגורציה של הפרויקט וכאן אמרנו לו תשמע מכלול הקונפיגורציה נמצא בappsettings.json ואמרנו לו add json file כלומר יכול להיות שיש לנו פה כל מיני דברים שנמצאים בקובץ הזה זה בסדר אבל בנוסף אנחנו יכולים להגיד

  4. 01:27

    לו Add User Secrets, אין בעיה שתקרא את הקובץ הזה, יכול להיות שיש פה כל מיני דברים שהם לא קשורים לSecrets או לדברים חסויים של האפליקציה, לדוגמה הכתובת לשר"פ מרוחק שאני רוצה לגלוש עליו, אז זה לא משהו כל כך חסוי, סיסמאות ומפתחות זה כן, אז אני לא אשאיר אותם כאן, אני אשים אותם כSecrets וזה פונקציה ג'נריק, אז אני אומר לו פרוגרם,

  5. 01:55

    פרוגרם זאת מחלקת הפרוגרם שלנו, ואז לפי מחלקת הפרוגרם הוא יודע לאיזה פרויקט אנחנו שייכים, והולך לכאן וטוען מפה את

לקורס המלא: קורס Entity Framework Core

ההרצאה הקודמת: יצירת ConnectionString - ב-App Secret

ההרצאה הבאה: יצירת מחלקת Customers Service

הרצאות קשורות מקורסים אחרים

  • Swarm - Secret
  • The App Chooser
  • הסבר על secret - Kubernetes
  • App Engine - Serverless - חלק 1

קורסים נוספים במסלול

  • קורס דוט-נט - NET Core. - עם Rest API
  • קורס ASP.NET
  • קורס MVC
  • קורס Git ו-GitHub עם Visual Studio