با فرض اینکه اعتبارنامه های وارد شده معتبر هستند، باید یک برچسب احراز هویت فرمها ایجاد شود، تا به وسیله آن کاربر وارد سایت گردد. کلاس FormsAuthentication در فضای نام System.Web.Security متدهای متفاوتی برای ورود و خروج کاربران از طریق سیستم احراز هویت فرمها، در اختیار قرار میدهد. با وجود اینکه چندین متد در کلاس FormsAuthentication وجود دارد، برای ما سه متد از آنها جالب هستند که عبارتند از:
· GetAuthCookie (username, persistCookie): این متد یک برچسب احراز هویت فرمها ایجاد میکند که نام کاربری نامیده میشود. سپس، این متد یک شیء HttpCookie که محتویات برچسب احراز هویت را نگهداری میکند، ایجاد و آن را برمیگرداند. اگر مقدار persistCookie برابر true باشد، یک کوکی پایدار ایجاد میشود.
· SetAuthCookie (username, persistCookie): این متد، متد GetAuthCookie را فراخوانی میکند تا کوکی احراز هویت فرمها را تولید کند. سپس این متد کوکی برگردانده شده توسط GetAuthCookie را به مجموعه Cookies اضافه میکند (با فرض اینکه احراز هویت فرمها بر پایه کوکی به کار گرفته شده باشد؛ در غیر این صورت، این متد یک کلاس داخلی که برچسب منطقی بدون کوکی ایجاد میکند را فراخوانی میکند).
· RedirectFormLoginPage (username, persistCookie): این متد، متد SetAuthCookie را فراخوانی میکند و بعد از آن کاربر را به صفحه مورد نظر هدایت مینماید.
GetAuthCookie وقتی سودمند است که شما نیاز دارید برچسب احراز هویت را قبل از اینکه کوکی خارج از مجموعه کوکیها بنویسید، تغییر دهید. اگر شما بخواهید برچسب احراز هویت فرمها ایجاد و آن را به مجموعه کوکیها اضافه کنید، اما نخواهید کاربر را به صفحه مورد نظر هدایت کنید، SetAuthCookie کاربرد دارد. ممکن است شما بخواهید آنها را در صفحه ورود نگهدارید و یا به صفحات جایگزین بفرستید.
زمانی که ما میخواهیم کاربر وارد و به صفحه مورد نظر هدایت شود، از RedirectFormLoginPage استفاده میکنیم. در رویداد LoginButton’s Click دو خط TODO را با دستور زیر جابجا میکنیم:
FormsAuthentication.RedirectFromLoginPage(UserName.Text, RememberMe.Checked);
وقتی که برچسب احراز هویت فرمها را ایجاد میکنیم از مشخصه متن جعبه متن UserName برای پارامتر username و وضعیت چک باکس RememberMe برای پارامتر persistCookie برچسب احراز هویت استفاده میکنیم.
تشکر