מדריך ASP.NET – אבטחה: פקדי Login
ב – ASP.NET קיימים פקדים מיוחדים עבור כל הקשור ל – Login, רישום למערכת וכו'. במדריך זה נכיר את הפקדים השונים אשר נמצאים ב-Toolbox תחת קטגורית Login, מהו תפקידו ואיך מחברים אותו למערכת.
הכנה
על-מנת לעבוד עם פקדי Login, נצטרך להגדיר את ה-Membership Provider כפי שמוסבר במאמר מדריך ASP.NET – אבטחה: הגדרת משתמשים וקבוצות.
פקד Login
פקד זה משמש אותנו ליצירת מסך התחברות למערכת.
נוסיף דף חדש למערכת בשם Login.aspx, ונגרור את פקד ה – Login לתוך הדף.
ב – web.config נוסיף תחת ה-<system.web> אלמנט בשם authentication שבאמצעותו נגדיר את אופן ההזדהות באפליקציה.
מאחר ואנו נרצה להזדהות באמצעות שם וסיסמה, נגדיר את ה-mode ל-Forms ונציין שיש להציג את דף ה-Login שבנינו בכניסה למערכת, באופן הבא:
<system.web>
<authentication mode="Forms">
<forms loginUrl="login.aspx" name=".ASPXFORMSAUTH" />
</authentication>
</system.web>
על מנת למנוע מצב שמשתמשים לא מזוהים (Anonymous) יכנסו למערכת נוסיף תחת ה-system.web גם הגדרת הרשאות (Authorization) באמצעות האלמנט authorization:
<authorization>
<deny users="?" />
</authorization>
הגדרת deny מאפשרת לנו להגדיר אילו משתמשים אינם מורשים להכנס למערכת. סימן השאלה (?) מגדיר את המשתמש ה”אנונימי”.
פקד LoginStatus
הפקד הזה מציג קישור ל – Log in או Log out בהתאם להאם המשתמש מחובר או לא.
אפשר לראות את השינוי בכיתוב כבר ב – Designer כאשר לוחצים על החץ המסומן בעיגול:
כאשר אנחנו נמצאים במצב של Logged out הכיתוב יהיה Login , וכאשר אנחנו במצב של Logged in הכיתוב יהיה Logout:
את הכיתובים האלו ניתן לשנות ע"י שינוי המאפיינים LogInText ו – LogOutText של הפקד. מאפיין חשוב נוסף הוא LogOutPageUrl – הדף אליו מופנה המשתמש לאחר Log out.
פקד LoginView
פקד זה מאפשר לנו להציג כיתוב שונה עבור משתמש מזוהה (Logged In) ועבור משתמש בלתי מזוהה (Anonymous).
לצורך כך קיימים שני מאפיינים – LoggedInTemplate ו – AnonumousTrmplate בהתאמה. נראה דוגמה לשימוש ב – LoginView:
<asp:LoginView ID="LoginView1" runat="server">
<AnonymousTemplate>
<asp:Label Text="Hello anonymous user"
runat="server" ID="lblAnonymous" />
</AnonymousTemplate>
<LoggedInTemplate>
<asp:Label ID="Label1" Text="Hello " runat="server" />
<asp:LoginName runat="server" ID="ctrlLoginName" />
</LoggedInTemplate>
</asp:LoginView>
במידה והמשתמש איננו מחובר נראה את הכיתוב "Hello anonymous user". במידה והמשתמש מחובר (לצורך ההדגמה כמשתמש בשם "user1") נראה את הכיתוב "Hello user1".
פקד LoginName
פקד זה מראה לנו את שם המשתמש. ניתן לראות את השימוש בפקד בדוגמה של פקד ה – LoginView לעיל. בכל מקום בו שמים את הפקד הוא מציג את שם המשתמש.
פקד ChangePassword
פקד זה מאפשר לנו ליצור בקלות טופס לשינוי סיסמא. כל שעלינו לעשות הוא להוסיף דף לאתר שלנו ולקרוא לו ChangePassword.aspx
לדף הזה נוסיף את הפקד כך שיווצר לנו הכיתוב הבא:
<asp:ChangePassword ID="ChangePassword1" runat="server">
</asp:ChangePassword>
כאשר הדף יעלה – יוצג למשתמש המסך הבא:
נסקור חלק מן המאפיינים:
ChangePasswordButtonText – הכיתוב על גבי הכפתור "Change Password" (הכפתור שמבצע את פעולת שינוי הסיסמא).
ChangePasswordButtonType – ניתן לשים במקום הכפתור קישור או תמונה – לכן ניתן לשנות את המאפיין ChangePasswordButtonType ל – Image או ל – Link.
במקרה של Image יש לתת קישור לתמונה במאפיין ChangePasswordButtonImageUrl, במקרה זה הערך המופיע במאפיין ChangePasswordButtonText ישמש כ – alt text של התמונה.
ConfirmNewPasswordLabeltext – הכיתוב ליד השדה לאישור הסיסמא החדשה.
NewPasswordlabelText – הכיתוב ליד השדה לכתיבת הסיסמא החדשה.
PasswordLabelText – הכיתוב ליד שדה הסיסמא (הישנה).
ChangePasswordFailureText – הודעת השגיאה אשר תופיע במקרה של שגיאה בשינוי הסיסמא.
פקד CreateUserWizard
פקד זה מאפשר לנו להוסיף דף רישום למערכת. הכיתוב עבור הפקד הוא:
<asp:CreateUserWizard ID="CreateUserWizard1" runat="server"
ContinueDestinationPageUrl="~/home.aspx">
<WizardSteps>
<asp:CreateUserWizardStep ID="CreateUserWizardStep1"
runat="server">
</asp:CreateUserWizardStep>
<asp:CompleteWizardStep ID="CompleteWizardStep1"
runat="server">
</asp:CompleteWizardStep>
</WizardSteps>
</asp:CreateUserWizard>
שימו לב למאפיין ContinueDestinationPageUrl – זו הכתובת לדף אליו יופנה המשתמש לאחר השלמת תהליך הרישום.
לבד ממנו נראה כי האשף (Wizard) הזה מחולק לשני שלבים (Steps) כאשר האחד הוא הרישום והשני הוא שלב ההשלמה. נוכל לראות כי מתקבלים שני מסכים (אחד עבור כל שלב).
שלב ההרשמה:
לאחר לחיצה על הכפתור Create User יתקבל המסך הבא:
לחיצה על Continue תפנה אותנו לכתובת אותה הגדרנו במאפיין ContinueDestinationPageUrl.
פקד PasswordRecovery
שימוש בפקד זה מאפשר לנו ליצור דף, בו המשתמש נדרש לענות על שאלה בה בחר בעת שנרשם למערכת, והסיסמא תאופס ותשלח אליו למייל.
הכיתוב עבור הפקד הזה:
<asp:PasswordRecovery ID="Passwordrecovery1" runat="server" />
כאשר משתמשים בפקד מתקבל המסך הבא:
חשוב להגדיר שני דברים במידה ומשתמשים בפקד זה:
1. שרת SMTP – אותו יש להגדיר ב – web.config:
<system.net>
<mailSettings>
<smtp deliveryMethod="Network">
<network host="yourSmtpServer"/>
</smtp>
</mailSettings>
</system.net>
2. כתובת השולח, אותה ניתן להגדיר בתוך הפקד במאפיין MailDefinition.From.
תגובות בפייסבוק