یک سایت جدید بر پایه سیستم فایل و به زبان C# و به نام SecurityTutorial ایجاد میکنیم (شکل زیر).
اضافه کردن Master Page
یک Master Page با نام Site.master در شاخه ریشه به سایت اضافه کنید. Master Page طراح سایت را قادر میسازد برای سایت الگو تهیه کند و آن را به تمام صفحات سایت اعمال کند. مزیت اصلی استفاده از Master Page این است که ظاهر کل سایت را میتوان در یک صفحه تعیین کرد.
اکنون در Master Page طراحی سایت را انجام دهید. شما میتوانید از Design view استفاده کنید و هرگونه صفحه بندی و کنترلی که نیاز دارید را به صفحه اضافه کنید و یا اینکه به طور دستی موارد مشخص شده را در قسمت Source view اضافه کنید.
<%@ Master Language="C#" AutoEventWireup="true" CodeFile="Site.master.cs" Inherits="Site" %>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" >
<head id="Head1" runat="server">
<title>Forms Authentication, Authorization, and User Accounts</title>
<link href="Styles.css" rel="stylesheet" type="text/css" />
</head>
<body>
<div id="wrapper">
<form id="form1" runat="server">
<div id="header">
<span class="title">User Account Tutorials</span>
</div>
<div id="content">
<asp:contentplaceholder id="MainContent" runat="server">
<!-- Page-specific content will go here... -->
</asp:contentplaceholder>
</div>
<div id="navigation">
TODO: Menu will go here...
</div>
</form>
</div>
</body>
</html>
یک صفحه با نام Default.aspx مطابق شکل به سایت اضافه کنید.
در صفحه Default.aspx شما کدهای زیر را میبینید که نشانی Master Page و کنترلهای متحوی نیز مشخص شدهاند.
<%@ Page Language="C#" MasterPageFile="~/Site.master" AutoEventWireup="true" CodeFile="Default.aspx.cs" Inherits="_Default" Title="Untitled Page" %>
<asp:Content ID="Content1" ContentPlaceHolderID="MainContent" Runat="Server">
</asp:Content>
FormsAuthenticaionModule کدهایی که قسمتی از اجرایASP.NET هستند، را مدیریت میکند. قبل از نسخه 7 وب سرور خدمات اطلاعات اینترنت مایکروسافت[1] یک مانع بین خط HTTP مربوط به IIS و خط HTTP مربوط به اجرایASP.NET وجود داشت. به طور خلاصه، در IIS نسخه 6 و قبل از آن، FormsAuthenticaionModule فقط زمانی که یک درخواست از IIS برای اجرایASP.NET صادر شده بود، اجرا میشد. به طور پیش فرض IIS محتوی را به طور ایستا پردازش میکند (مانند صفحات HTML و CSS و فایلهای تصویری) و فقط وقتی یک صفحه با پسوند .aspx و یا .asmx و یا .ashx درخواست شده باشد، درخواست اجرایASP.NET را میدهد.
اما، IIS 7 اجازه میدهد خطوط IIS وASP.NET با هم یکی شوند. با کمی تنظیمات پیکربندی شما میتوانید IIS 7 را طوی تنظیم کنید که FormsAuthenticaionModule را برای تمامی درخواستها، فراخوانی کند. از این گذشته، در IIS 7 شما میتوانید نقشهای مجوزدهی آدرسی برای فایلها و یا هر نوع دیگر، تعیین کنید.
بعد از ورود، برچسب احراز هویت فرمها باید روی هر درخواست به وب سرور بازگردانده شود تا کاربر تا هنگامی که سایت را مرور میکند، در حالت ورود بماند. این کار معمولا با نگهداری برچسب احراز هویت در مجموعه کوکیهای کاربر انجام میشود. کوکیها فایلهای متنی کوچکی هستند که روی رایانه کاربر ایجاد میشوند و در سرآیند HTTP روی هر درخواستی از سایتی که کوکی را ایجاد کرده است، انتقال پیدا میکنند. بنابراین یکبار برچسب احراز هویت فرمها ایجاد و در کوکیهای مرورگر نگهداری میشود، در بازدیدهای بعدی، برچسب احراز هویت همراه با درخواست ارسال میشود، در نتیجه کاربر شناسایی میگردد.
یکی از ویژگیهای کوکیها انقضاء آنهاست، که زمان و تاریخی است که مرورگر کوکی را نابود میکند. وقتی کوکی برچسب احراز هویت منقضی میشود، کاربر نمیتواند تایید شود و بنابراین ناشناس قلمداد میگردد. وقتی کاربر از یک ترمینال عمومی برای دیدن سایت استفاده میکند، بهتر است با بستن مرورگر برچسب احراز هویت او منقضی شود. وقتی کاربر از خانه سایت را بازدید میکند، ممکن است بخواهد برچسب احراز هویت او در خلال اجراهای مرورگر نگهداری شود چون او نمیخواهد در هر بار بازدید از سایت عملیات ورود را انجام دهد. این تصمیم اغلب با تیک زدن CheckBox «مرا به یاد داشته باش» در صفحه ورود انجام میشود.