DCSIMG
authentication from code using Login control (using reflection) - שלמה גולדברג (הרב דוטנט)

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

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

authentication from code using Login control (using reflection)

 

בהרבה מקרים כשאני משתמש עם ה Login Control,
 
אני רוצה את האפשרות שבזמן פיתוח, יהיה לי לחצן שכשאני לוחץ עליו, הוא יעשה Login עם שם משתמש וסיסמא קבועים מראש,
 
(אני לא רוצה להשתמש ב Remember Me)
 
הבעייה, שה Control הנהדר, נותן לי את האפשרות רק לשנות את ה UserName מקוד,
 
אבל הוא לא נותן את האפשרות לשנות את הסיסמא מקוד, וגם לא נותן את האפשרות לעשות Login מקוד, ולכן.
  
מה שאני עושה זה לכתוב את הקוד הבא, ב PageLoad:
 

    1 #if DEBUG

    2         Button btn = new Button();

    3         btn.Text = "Login With 1 and 1";

    4         form1.Controls.Add(btn);

    5         btn.Click += (sender1, e1) =>

    6         {

    7             // get the password field

    8             Type loginType = Login1.GetType();

    9             FieldInfo password = loginType.GetField("_password",

   10                 BindingFlags.NonPublic | BindingFlags.Instance);

   11 

   12             // set the name and the password

   13             Login1.UserName = "1";

   14             password.SetValue(Login1, "1");

   15 

   16             // invoke te login methde

   17             MethodInfo attemptLogin = loginType.GetMethod("AttemptLogin",

   18                 BindingFlags.NonPublic | BindingFlags.Instance);

   19             attemptLogin.Invoke(Login1, null);

   20         };

   21 #endif

 
 אני מייצר לחצן בזמן ריצה.
 
מוסיף אותו ל Collection של ה Controls של ה form.
 
ובזמן לחיצה עליו, אני מקבל את השדה שמייצג את הסיסמא,
 
עושה השמה לשם ולסיסמא.
 
מקבל את המתודה שעושה Login
 
ומפעיל אותה.
 
 
קל ופשוט.
 

תוכן התגובה

אוהד אסטון כתב/ה:

אני בדרך כלל דואג שהמנגנון יזהה אותי מבלי שאצטרך לבצע לוגין כלל (גם אם מדובר בלחיצה), זה מאוד מפריע בייחוד כשנמצאים באמצע תהליך לדוגמה של מעבר בין כמה עמודים.

אפשר לבצע את זה ע"י הזנת נתונים ישירות ל - Session לדוגמה, או פשוט לבצע לוגיקה שונה בפונקציות שמטפלות ב - Authentication וכיו"ב.

# February 10, 2009 3:01 PM
שלח תגובה

(שדה חובה)  

(שדה חובה)  

(אופציונלי)

(שדה חובה) 

Please add 6 and 4 and type the answer here:


Enter the numbers above: