همه وب سایتها به جزء بعضی از سادهترین آنها، نیاز به پیاده سازی امکان هدایت کاربران به قسمتهای مختلف سایت دارند. هدایت کاربران ممکن است با لیستی ساده از پیوندها ایجاد شده باشد. همچنین ممکن است این پیوندها در یک منو یا نمای درختی آرایش داده شده باشند. به عنوان توسعه دهنده صفحات، ایجاد رابط کاربری هدایت کاربران نیمی از داستان است. همچنین، بعضی مواقع نیاز است که تعریف ساختار منطقی سایت در نگهداری و به روز رسانی را تعیین نماییم. به عنوان نمونه، هنگام اضافه کردن یک صفحه جدید و یا حذف یک صفحه موجود، بهتر است که ما فقط یک منبع را ویرایش کنیم و اثر آن روی رابطهای کاربری هدایت کاربران نمایان شود.
بدین منظور دو کار باید انجام گیرد: تعیین نقشه سایت و ایجاد رابط هدایت کاربران بر پایه نقشه سایت؛ این کار با استفاده از بستر Site Map و کنترلهای هدایت کاربران بسیار ساده و آسان است. بستر Site Map به توسعه دهندگان اجازه میدهد نقشه سایت را تعیین نموده و سپس به وسیله برنامهنویسی به آن دسترسی داشته باشند.
همانند بسترهای Membership و Roles بستر Site Map نیز بر پایه مدل تهیه کننده ساخته شده است. وظیفه کلاس تهیه کننده Site Map، تولید ساختار مورد استفاده توسط کلاس SiteMap از محل پایدار نگهداری داده، مانند فایل XML و یا جدول پایگاه داده، است. بستر .NET از تهیه کننده پیش فرض Site Map که دادههای Site Map را از فایل XML میخواند استفاده میکند.
تهیه کننده پیش فرض Site Map، به یک فایل XML با فرمت صحیح و با نام Web.sitemap در ریشه سایت نیاز دارد. برای اضافه کردن این فایل بر روی نام پروژه کلیک راست کرده و Add New Item را انتخاب کنید. از کادر محاورهای که نشان داده میشود نوع Site Map را انتخاب و آن را Web.sitemap بنامید.
فایل XML نقشه سایت، ساختار سایت را بر اساس سلسله مراتبی تعیین میکند. Web.sitemap باید با گره پدر <sitemap> شروع شود و فقط یک فرزند <siteMapNode> دارد. عنصر سطح بالای <siteMapNode> نمایشگر ریشه سلسله مراتب است و میتواند دارای تعداد دلخواهی گره فرزند باشد. هر عنصر <siteMapNode> باید دارای ویژگی title و به دلخواه دارای ویژگی url و description باشد.
کدهای زیر را در فایل Web.sitemap قرار دهید:
<?xml version="1.0" encoding="utf-8" ?>
<siteMap xmlns="http://schemas.microsoft.com/AspNet/SiteMap-File-1.0" >
<siteMapNode url="~/Default.aspx" title="Home">
<siteMapNode title="Membership">
<siteMapNode url="~/Membership/CreatingUserAccounts.aspx" title="Creating User Accounts" />
<siteMapNode url="~/Membership/UserBasedAuthorization.aspx" title="User-Based Authorization" />
<siteMapNode url="~/Membership/Guestbook.aspx" title="Storing Additional User Information" />
</siteMapNode>
</siteMapNode>
</siteMap>
سلسله مراتب مشخص شده در کدهای بالا در شکل زیر نشان داده شده است:
گام اول: اضافه کردن صفحات جدید ASP.NET
برای ادامه مباحث به چندین صفحه ASP.NET و همچنین یک نقشه سایت نیاز داریم. برای اینکار یک پوشه به پروژه اضافه کرده و آن را Membership مینامیم. سپس صفحات زیر را به این پوشه اضافه کرده و Site.master را نیز به تمامی آنها اعمال میکنیم.
در این زمان Solution Explorer پروژه شما باید مشابه شکل زیر باشد:
در این زمان هر صفحه باید دارای دو کنترل Content باشد:
<asp:Content ID="Content1" ContentPlaceHolderID="MainContent" Runat="Server">
</asp:Content>
<asp:Content ID="Content2" ContentPlaceHolderID="LoginContent" Runat="Server">
</asp:Content>
قبل از شروع به کار با بستر عضویت، اجازه دهید مروری بر مراحلی که گذراندهایم تا به این مرحله رسیدیم، داشته باشیم. هنگامی که از بستر Membership همراه با SqlMembershipProvider در یک اعتبارسنجی فرمی استفاده میکنیم، نیاز است که قبل از انجام عملیات مربوط به Membership در برنامه وب، مراحل زیر انجام شوند:
هنگامی که یک برنامه وب میسازید که از SqlMembershipProvider و اعتبارسنجی بر پایه فرمها استفاده میکند، باید این 3 مرحله را قبل از اینکه از کلاس Membership و یا کنترلهای Login استفاده کنید، انجام دهید. بعد از انجام مراحل گفته شده میتوان از بستر عضویت استفاده کرد.