آموزش ASP.NET

آموزش ASP.NET متفاوت از آنچه جاهای دیگر می بینید!

آموزش ASP.NET

آموزش ASP.NET متفاوت از آنچه جاهای دیگر می بینید!

تصمیم گیری در صورتی که اعتبارنامه معتبر باشد

ما برای اینکه بتوانیم تعیین کنیم که نام کاربری و رمز عبور درست است نیاز داریم که اعتبارنامه‏های کاربران در محلی ذخیره شود تا بتوانیم نام کاربری و رمز عبور را با آنها مقایسه کنیم.

تا قبل ازASP.NET 2.0 ، توسعه دهندگان مجبور بودند خودشان محلی برای نگهداری اعتبارنامه‏های کاربران ایجاد کنند و کدهایی بنویسند که اعتبار نام کاربری و رمز عبور وارد شده را تعیین کند. بیشتر توسعه‏دهندگان اطلاعات کاربران را در یک پایگاه داده شامل یک جدول با نام Users با ستون‏هایی مانند UserName, Password, Email, LastLoginDate و از این دست، می‏ساختند. این جدول برای هر کاربر یک رکورد داشت. نام کاربر و رمز عبور وارد شده در قالب یک پرس و جو[1] از پایگاه داده چک می‏شد، به این صورت که نام کاربر در داده‏ها وجود داشته باشد و سپس رمز عبور آن نیز صحیح باشد. باASP.NET 2.0  توسعه دهندگان باید یکی از تهیه کنندگان عضویت را برای ذخیره کاربران استفاده کنند. در حال حاضر با فراخوانی کلاس عضویت[2] و متد تایید اعتبار کاربر[3] به سادگی اعتبارنامه کاربر را تعیین اعتبار می‏کنیم. متد تایید اعتبار کاربر، یک مقدار بولی که تعیین کننده درستی اعتبار نام کاربر و رمز عبور است را برمی‏گرداند.

در حال حاضر به وسیله کدهای داخل خود صفحه ورود احراز هویت را انجام می‏دهیم. کدهای زیر در رویداد کلیک دکمه تایید نوشته شوند: 

   

 

protected void LoginButton_Click(object sender, EventArgs e)

{

// Three valid username/password pairs: Scott/password, Jisun/password, and Sam/password.

string[] users = { "Scott", "Jisun", "Sam" };

string[] passwords = { "password", "password", "password" };

for (int i = 0; i < users.Length; i++)

{

bool validUsername = (string.Compare(UserName.Text, users[i], true) == 0);

bool validPassword = (string.Compare(Password.Text, passwords[i], false) == 0);

if (validUsername && validPassword)

{

// TODO: Log in the user...

// TODO: Redirect them to the appropriate page

}

}

// If we reach here, the user's credentials were invalid

InvalidCredentialsMessage.Visible = true;

}

 

همانگونه که می‏بینید سه حساب کاربری معتبر وجود دارد: Scott, Jisum و Sam و رمز عبور همه آنها password است. برنامه در داخل یک حلقه، درون آرایه‏های users و passwords را جهت مطابقت نام کاربر و رمز عبور معتبر می‏کاود. اگر نام کاربر و رمز عبور معتبر بود، ما باید کاربر را وارد و سپس به صفحه مورد نظر هدایت کنیم. اگر اعتبارنامه نامعتبر بود، برچسب InvalidCredentialsMessage را نمایش می‏دهیم.  

اشاره کردم که وقتی کاربر اعتبارنامه معتبر وارد می‏کند به صفحه مناسب هدایت می‏شود. فکر می‏کنید صفحه مناسب چیست؟ به یاد دارید که، وقتی که کاربر می‏خواهد صفحه‏ای که برای دیدن آن مجوزدهی نشده است را ببیند، FormsAuthenticationModule به طور خودکار او را به صفحه ورود هدایت می‏کند. هنگام انجام این کار، FormsAuthenticationModule نشانی مورد درخواست را در رشته پرس و جو از طریق پارامتر ReturnUrl نگهداری می‏کند. به این معنی که اگر کاربر بخواهد صفحه ProtectedPage.aspx را که برای آن مجوزدهی نشده است را ببیند، FormsAuthenticationModule او را به نشانی زیر هدایت می‏کند:

Login.aspx?ReturnUrl=ProtectedPage.aspx

به محض ورود موفقیت آمیز، کابر باید به ProtectedPage.aspx هدایت شود. ممکن است کاربر به خواست خود بخواهد اول صفحه ورود را ببیند، در این صورت بعد از ورود، کاربر باید به شاخه ریشه، صفحه Default.aspx، فرستاده شود.


[1] Query

[2] Membership class

[3] ValidateUser method

نظرات 1 + ارسال نظر
سعید جمعه 14 شهریور‌ماه سال 1393 ساعت 03:49 ب.ظ

عالی بود

برای نمایش آواتار خود در این وبلاگ در سایت Gravatar.com ثبت نام کنید. (راهنما)
ایمیل شما بعد از ثبت نمایش داده نخواهد شد