احراز هویت فرمها برای برنامههای کاربردی وب مطلوب است. یادآوری میکنیم که احراز هویت فرمها به وسیله مجبور ساختن کاربرها به وارد کردن اعتبارنامههایشان در وب فرم، آنها را شناسایی میکنند. در نتیجه وقتی یک کاربر تلاش میکند به وسیله غیرمجاز دسترسی داشته باشد، به طور خودکار به صفحه login هدایت میشود و در آنجا میتواند اعتبارنامهاش را وارد کند.
بعد از اینکه اعتبارنامه فرستاده شده بررسی شد، یک برچسب احراز هویت فرمها برای کاربر ایجاد میشود. این برچسب نشان میدهد که کاربر احراز هویت شده است و برچسب شامل اطلاعات شناسایی مانند نام کاربری میباشد. برچسب احراز هویت فرمها، معمولا، به صورت یک کوکی در رایانه خدمت گیرنده ذخیره میشود. بنابراین از این به بعد درخواست HTTP برای دیدن وب سایت شامل برچسب احراز هویت فرمها میباشد و در نتیجه برنامه کاربردی وب (وب سایت) پس از بار اول که کاربر وارد سامانه شد، قادر است او را شناسایی کند.
شکل زیر جریان احراز هویت را با مثال توضیح میدهد. دقت کنید که چگونه بخشهای احراز هویت و مجوز دهی در ASP.NET به صورت دو موجودیت مجزا عمل میکنند. سیستم احراز هویت فرمها کاربر را شناسایی میکند (و یا گزارش میدهد که ناشناخته است). سیستم مجوز دهی تعیین میکند که چه کاربری به منابع مورد درخواست دسترسی دارد. اگر کاربری دارای مجوز نشد (مانند شکل زیر، وقتی به طور ناشناخته تلاش میکند صفحه ProtectedPage.aspx را ببیند) سیستم مجوزدهی گزارش می دهد که کاربر رد شده است، در نتیجه سیستم احراز هویت به طور خودکار کاربر را به صحفه ورود هدایت می کند.
یک مرتبه که کاربر به طور موفقیت آمیز وارد شد، در مراحل بعدی، درخواست HTTP شامل برچسب احراز هویت فرمها میباشد. سیستم احراز هویت فرمها فقط کاربر را شناسایی میکند، و سیستم مجوزدهی تعیین میکند که چه کاربری میتواند به منابع مورد درخواست دسترسی داشته باشد.
در احراز هویت از طریق ویندوز یکی از سه روش زیر به کار گرفته میشود:
· احراز هویت اولیه
· احراز هویت مختصر
· احراز هویت یکپارچه ویندوز
هر سه روش فوق تقریبا مشابه هستند: وقتی یک درخواست ناشناس از یک شخص غیرمجاز وارد میشود، سرور یک پاسخ HTTP مبنی بر اینکه برای ادامه، مراحل شناسایی لازم است، برمیگرداند. سپس مرورگر یک جعبه تبادل دوطرفهای (شکل زیر) برای دریافت نام کاربر و رمز عبور به کاربر نمایش میدهد. سپس این اطلاعات از طریق سرآیند HTTP برای سرور فرستاده میشود.
هر کاربر شناسایی شده در وب سایت شما باید در سازمانتان یک حساب ویندوز داشته باشد. این روش معمولی در اینترانت است. در واقع وقتی شما از احراز هویت یکپارچه ویندوز در تنظیمات اینترانت استفاده میکنید، مرورگر به طور خودکار اعتبارنامه استفاده شده برای ورود به شبکه را برای سرور تهیه میکند. در حالی که احراز هویت ویندوز برای برنامههای کاربردی اینترانت قوی است، به دلیل اینکه شما نخواهید برای هر کاربر که وارد سایت شما میشود یک حساب ویندوز ایجاد کنید، برای برنامههای کاربردی اینترنت (سایتهای اینترنتی) شدنی نیست.
وقتی یک کاربر نشانی یک صفحه را در مرورگر خود وارد میکند و یا روی یک پیوند کلیک میکند، مرورگر وب یک درخواست HTTP برای یک محتوی مشخص مانند: یک صفحه ASP.NET، یک تصویر، یک فایل جاوا اسکریپت و یا هر محتوی دیگر به سرور ارسال میکند. وب سرور طوری طراحی شده است که محتوی درخواست شده را برگرداند. در انجام این کار، سرور باید در مورد مسایلی در ارتباط با درخواست تصمیمگیری کند، شامل اینکه: چه کسی درخواست را ارسال کرده و آیا شخص برای بازیابی محتوی درخواست شده مجاز است یا خیر؟
به طور پیش فرض، مرورگرها درخواستهای HTTP را بدون وجود هرگونه اطلاعات شناسایی ارسال میکنند. اما اگر درخواست ارسالی شامل اطلاعات شناسایی باشد، سرور تلاش میکند خدمت گیرندهای که این درخواست را ارسال کرده شناسایی کند. مراحل شناسایی، به روش احراز هویتی که وب سایت استفاده میکند، دارد. ASP.NET سه نوع روش را پشتیبانی میکند: ویندوز، گذرنامه و فرمها. در این مقاله تمرکز ما بر روی شناسایی از طریق فرمها است، ولی در ابتدا شناختی از شناسایی از طریق ویندوز به دست آوریم.