PracticU

יצירת ConnectionString
ב-App Secret

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

יצירת ConnectionString ב-App Secret
כאן מעבירים את ה-Connection String מהקובץ appsettings אל App Secret, כך שהיא נשמרת מחוץ לפרויקט.
השלבים העיקריים
1. למה זה מידע רגיש: לרוב ה-Connection String מכילה משתמש וסיסמה. בפרויקט הנוכחי יש trusted connection עם הערך true, כלומר שימוש במשתמש Windows, אבל בדרך כלל בפיתוח ובפרודקשן מוסיפים משתמש וסיסמה.
2. הוצאת המחרוזת מהקובץ: שמים את ה-Connection String בהערה, ולכן הפרויקט לא ירוץ זמנית.
3. אתחול: בחלון Package Manager Console מריצים dotnet user-secrets init. הפקודה מוסיפה ל-Project File (קובץ XML של הגדרות הפרויקט) את ה-User Secrets ID. אפשר לראות אותו אחרי לחיצה ימנית על הפרויקט, לא על ה-Solution, ובחירה ב-Edit project file.
4. בדיקה בסייר הקבצים: בנתיב Users\<משתמש>\AppData\Roaming\Microsoft עדיין אין תיקיית UserSecrets, כי רק הוגדר מזהה.
5. הגדרת הערך: מריצים dotnet user-secrets set עם המפתח ConnectionStrings:GiftShop ובגרשיים את המחרוזת המלאה, עם סלאש אחד בלבד.
6. אימות: הפקודה מדווחת successfully saved, ונוצרת תיקיית UserSecrets עם תיקייה בשם ה-ID של הפרויקט וקובץ ה-JSON. בקובץ נראה הסלאש כפול, כנדרש ב-JSON.
פקודות והגדרות
- dotnet user-secrets init
- dotnet user-secrets set "ConnectionStrings:GiftShop" "<המחרוזת>"
מקובל לכתוב Connection String בצורה ConnectionStrings:<שם>. לסוד פשוט, כמו סיסמה או מפתח, אפשר להשתמש בשם בלי נקודתיים.
שימו לב
למחשב אחד יכולים להיות עשרות פרויקטים, ולכל אחד קוד משלו. כדי להגדיר כמה סודות חוזרים על פקודת set.
אחרי ההרצאה אפשר ליצור App Secret שמחזיק Connection String. ההרצאה הבאה מראה איך להשתמש בו בקוד.
השיעור הבא בקורס: שימוש ב-ConnectionString המוגדרת כ-App Secret

פרקי ההרצאה: יצירת ConnectionString ב-App Secret

  1. 00:00

    מדוע ה-ConnectionString מידע רגיש

  2. 00:56

    יצירת App Secret בפקודת init

  3. 01:37

    קוד ה-UserSecretID בקובץ הפרויקט

  4. 02:11

    מיקום השמירה במערכת הקבצים

  5. 03:09

    פקודת user-secrets set

  6. 04:28

    הרצה ובדיקת קובץ ה-JSON

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

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

  1. 00:02

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

  2. 00:30

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

  3. 00:51

    הזה רגע בהערה כרגע הפרויקט כמובן לא ירוץ אנחנו אנחנו רוצים לייצר אפ סיקרט שמכיל את כל המחרוזת הזאת. זה מתבצע כאן בפאקג' מנאג'ר קונסול והפקודה שמייצרת לנו בכלל את האפ סיקרט, את אותו קובץ מתאים במערכת נקראת .net user/secrets/revach/init זאת הפקודה שפשוט

  4. 01:25

    גורמת לזה שיהיה לנו איזשהו קוד, אתם רואים הנה הקוד כאן, כותב לי set user secrets ID בקוד הזה for הפרויקט הנוכחי שלנו. cprojects זה הפרויקט, איפה זה מצוין הדבר הזה?

  5. 01:42

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

  6. 01:53

    Project File זה קובץ XML שמכיל הגדרות ברמת הפרויקט. והנה ההגדרה של מה הקוד של ה-AppSecret של האפליקציה הנוכחית. בסדר? לא צריכים לזכור בעל פה את הקוד הזה, אבל שימו לב שזה גוויד, 36 תווים של מכרוזת ייחודית שאין בעולם מכרוזת כזאת נוספת.

  7. 02:17

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

  8. 02:50

    בסדר גמור. אנחנו רק הגדרנו קוד עבור ה-user secrets. זה הקוד. עכשיו אנחנו רוצים לגשת שוב פעם לחלונית הזאת ולבנות לעצמנו key value מתאים עבור ה-connection string ואז הוא הולך באמת להישמר בדיוק איפה שראינו.

  9. 03:10

    אז איפה בדיוק אנחנו מגדירים את זה או ליתר דיוק מה הפקודה שתגדיר לנו את זה? אז אנחנו רוצים לגשת לפה, בואו רגע ננקה, ולהגדיר את הפקודה הבאה. .NET USER == SEEK RATS SET בואו נקרא לזה CONNECTION STRINGS.2 ואז מה בעצם ה-Connection String שלנו? מה השם שלה?

  10. 03:41

    GIFT COP רווח ובגרשיים אנחנו רוצים להכניס את כל המחרוזת הזאת שכמובן בהמשך היא תכיל גם. סיסמה בפרודקשני תכיל סיסמה רק שימו לב אני מדביק את זה שאין לנו פעמיים סלאש צריך לתת לנו סלאש אחד ויחיד אז יש לנו כאן .net user secrets set כאשר אנחנו משתמשים בקונקשן סטרינג אז מקובל קונקשן סטרינג זה נקודותיים ואז שם הקונקשן סטרינג

  11. 04:12

    אם יש לי סתם איזה סיסמה או מפתח אז אני יכול מהי best key, אני לא חייב את השם עם הנקודותיים אבל בקונקשן סטרינג זה כן מקובל, ואז איזה value זה שייך, אז זה key value, זה המפתח וזה הvalue שלו, כל ה-connection string. בואו ניגש ונריץ את הפקודה, go,

  12. 04:36

    והוא מייצר את הקובץ, הוא כותב לי successfully saved את כל הדבר הזה, בואו נחזור לפה, ונראה שהופיעה לנו תיקייה user secrets בואו ניכנס אליה והנה אנחנו רואים את הקוד של הפרויקט הקוד הזה מתאר את הפרויקט הספציפי שלנו יכול להיות שבמחשב יש לי עוד 20 או 30 או 50 פרויקטים שונים כל אחד יהיה לו קוד אחר ששומר את ה-secrets שלו בואו ניכנס לתיקייה

  13. 04:44

    הנה קובץ הג'ייסון בואו נפתח אותו אנחנו רואים שזה אובייק ג'ייסון שאומר הנה המפתח שלך והנה ה-values

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

ההרצאה הקודמת: הסבר על App Secrets

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

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

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

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

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