فرآيند فوق را می توان به دو حالت متفاوت تعميم و مورد توجه قرار داد :
-
حالت اول : درخواست يک صفحه ايمن از سرويس دهنده ، توسط يک کاربر غيرمجاز و تائيد نشده
مرحله اول : پس از درخواست يک سرويس گيرنده برای دستيابی به يک صفحه ايمن ، درخواست ارسالی وی در ابتدا توسط IIS بررسی و با توجه به اينکه تنظيمات IIS بصورت Anonymous پيکربندی شده تا امکان استفاده از Forms Authentication فراهم گردد ، درخواست کاربر ، مستقيما" برای ماژول ASP.NET Forms Authentication ارسال می گردد .
مرحله دوم : ASP.NET ، بررسی لازم در خصوص وجود ( داشتن ) يک کوکی Authentication را انجام خواهد داد . با توجه به اينکه کاربر اولين مرتبه است که درخواست اطلاعاتی را نموده و دارای يک کوکی نمی باشد ، سرويس گيرنده به صفحه Logon ، هدايت می گردد .
مرحله سوم : کاربراطلاعات ضروری ( نام و رمز عبور ) خود را در صفحه Logon درج و پس ازارسال آنان ،فرآيند بررسی اطلاعات ارسالی آغاز می گردد. در يک برنامه بزرگ ، بررسی اطلاعات کاربر از طريق يک بانک اطلاعاتی شامل مشخصات کاربران انجام می شود .
مرحله چهارم : در صورتيکه اطلاعات ارسالی کاربر ( نام و رمز عبور ) ، پس از بررسی توسط برنامه وب ، معتبر شناخته نگردند ، مجوز دستيابی برای کاربر صادر نشده و امکان دستيابی وی سلب می گردد .
مرحله پنجم : در صورتيکه پس از بررسی اطلاعات ارسالی، اعتبار وصحت آنان تائيد گردد ، يک کوکی تائيد ايجاد و در ادامه به کاربر مجوز لازم به منظور دستيابی به صفحه ، اعطاء می گردد .(هدايت کاربر به صفحه درخواست اوليه ) .
-
حالت دوم : درخواست يک صفحه ايمن از سرويس دهنده ، توسط يک کاربر مجاز و تائيد شده
مرحله اول : پس از درخواست يک صفحه ايمن توسط سرويس گيرنده ، کوکی Authentication بهمراه درخواست وی برای سرويس دهنده ، ارسال می گردد.
مرحله دوم :درخواست ارسالی توسط سرويس گيرنده در ابتدا توسط IIS دريافت و با توجه به تنظيمات انجام شده ( دسيتابی Anonymous ) ، درخواست وی مستقيما" برای ASP.NET Forms Authentication ارسال می گردد .
مرحله سوم : ماژول ASP.NET Forms Authentication ، بررسی لازم در خصوص کوکی را انجام و در صورتيکه کوکی معتبر باشد ، سرويس گيرنده تائيد و امکان دستيابی و مشاهده صفحه وب درخواستی برای وی ، فراهم می گردد .
در روش Forms Authentication ، بصورت اتوماتيک يک فرم وب طراحی شده به منظور اخذ اطلاعات مربوط به نام و رمز عبور کاربران ، نمايش داده می شود . کد مرتبط با فرم وب ، عمليات تائيد و معتبرسازی کاربر را بر اساس ليست ذخيره شده در فايل Web.Config برنامه و يا از طريق يک بانک اطلاعاتی جداگانه ، انجام می دهد. مزيت مهم Forms Authentication ، عدم ضرورت عضويت کاربران در Domain شبکه به منظور دستيابی به برنامه وب ، می باشد .
فعال نمودن Forms Authentication
به منظور استفاده از روش فوق ، می بايست مراحل زير را دنبال نمود :
-
مقداردهی Authentication mode در فايل Web.config به Forms
-
ايجاد يک فرم وب به منظور اخذ اطلاعات کاربران ( Logon Page )
-
ايجاد يک فايل و يا بانک اطلاعاتی به منظور ذخيره نام و رمز عبور کاربران
-
نوشتن کد لازم به منظور افزودن کاربر جديد به فايل و يا بانک اطلاعاتی کاربران
-
نوشتن کد لازم به منظور تائيد کاربران با استناد به فايل و يا بانک اطلاعاتی کاربران
Forms Authentication ، از کلاس های موجود در namespace با نام System.Web.Security استفاده می نمايد . به منظور استفاده از کلاس های فوق، می بايست در ويژوال بيسک دات نت از عبارت Imports و در ويژوال سی شارپ از Using استفاده گردد ( در ابتدای هر ماژول که عمليات تائيد را انجام خواهد داد : Imports System.Web.Security ) .
مقداردهی Authentication mode
نوع تائيد کاربران در يک برنامه وب ، می بايست با استفاده از عنصر <authentication> در فايل Web.config مشخص گردد. به منظور تنظيم برنامه مورد نظر خود برای استفاده از Forms Authentication ، تغييرات زير را در فايل Web.Config ، اعمال می نمائيم :
|
Web.Config setting for Forms Authentication |
|
<authentication mode="Forms"> <forms loginUrl = Login.aspx" > <credentials passwordFormat = "Clear" > <user name = "Ali" Password ="110" /> <user name = "Kaveh" Password ="111" /> </credentials> </forms> </authentication> |
کد فوق، يک نوع ساده از تائيد کاربران به روش Forms را نشان می دهد . در اين رابطه ، اغلب از تعاريف و تنظيمات پيش فرض و يک ليست کاربران مجاز، استفاده شده است. از عناصر متفاوتی در ارتباط با Forms Authentication در فايل Web.Config استفاده می گردد.هر يک از عناصر دارای خصلت های خاص خود می باشند :
-
عنصر <authentication>
خصلت Mode ، با استفاده از خصلت فوق ، روش تائيد و شناسائی کاربران مشخص می گردد. با مقدار دهی خصلت فوق به Forms ، روش Forms Authentication انتخاب خواهد شد.
-
عنصر <forms>
خصلت name . از خصلت فوق به منظور مشخص نمودن نام کوکی که اطلاعات مربوط به نام و رمز عبور را ذخيره می نمايد ، استفاده می شود . مقدار پيش فرض ، authaspx . می باشد . در صورتيکه بيش از يک برنامه بر روی سرويس دهنده از روش Forms Authentication استفاده می نمايند ، می بايست برای هر يک از آنان نام منحصربفردی در نظر گرفته شود .
خصلت loginUrl .از خصلت فوق به منظور مشخص نمودن نام فرم وب Login برای کاربران تائيد نشده ، استفاده می گردد . مقدار پيش فرض خصلت فوق، Default.aspx است .
خصلت protection . با استفاده از خصلت فوق روش حفاظت کوکی Authentication که بر روی کامپيوتر سرويس گيرنده ذخيره می گردد ، مشخص خواهد شد. مقدار پيش فرض خصلت فوق ، All بوده که عمليات رمزنگاری و بررسی اعتبار و صحت داده در رابطه با آن اعمال می گردد. ساير گزينه های موجود در اين راستا ، Encryption,Validation و None می باشد .
خصلت timeout . با استفاده از خصلت فوق ، مدت زمان نگهداری کوکی Authentication بر روی ماشين کاربر مشخص می گردد . مقدار پيش فرض 30 دقيقه است . ASP.NET ، پس از دريافت يک درخواست جديد توسط کاربر و مشروط به گذشت بيش از نصف زمان تعريف شده ، کوکی را تجديد ( Renew ) خواهد کرد .
خصلت path . با استفاده از خصلت فوق ، مسير مورد نظر به منظور ذخيره سازی کوکی بر روی ماشين کاربر مشخص می گردد . مقدار پيش فرض ، "\" است .
-
عنصر <credentials>
خصلت passwordFormat ، با استفاده از خصلت فوق ، الگوريتم لازم به منظور رمزنگاری رمز عبور کاربر ، مشخص می گردد . مقدار پيش فرض ، SHA1 می باشد . ساير گزينه های موجود در اين رابطه ، MD5 و Clear ( بدون رمزنگاری ) می باشد .
-
عنصر <users>
خصلت name ، با استفاده از خصلت فوق ، نام کاربر مشخص می گردد.
خصلت password ، با استفاده از خصلت فوق ، رمز عبور کاربر مشخص می گردد.
عنصر <credentilas> ، امکان ذخيره سازی ليست کاربران را در Web.Config فراهم می نمايد . رويکرد فوق ، روشی ساده به منظور تعريف کاربران مجاز يک برنامه وب می باشد . در چنين مواردی ، مديريت سيستم می تواند بسادگی و در صورت لزوم نام و رمز عبور کاربران ديگری را به ليست مجاز کاربران ، اضافه نمايد . مکانيزم فوق ، در مواردی که قصد داشته باشيم ، امکان تعريف نام و رمز عبور را در اختيار کاربران قرار دهيم ، گزينه مناسبی نبوده و می بايست از يک فايل و يا بانک اطلاعاتی به منظور ذخيره سازی اطلاعات کاربران ، استفاده گردد.
در بخش چهارم اين مقاله با نحوه ايجاد بانک اطلاعاتی ، درج مشخصات کاربران و تائيد آنان با استناد به اطلاعات مندرج در بانک اطلاعاتی ، خواهيم پرداخت .
Copyright by Shabgard.ORG