راهکارهای موثر در ASP.Net > راهکار 2 - 5 : ساخت یک سایت ASP.Net با قابلیت عضوگیری و ورود اعضا

مقدمه :

یکی از نیازهای مهم و حیاتی در وب سایت ها ، ایجاد ساز و کاریست تا فقط اعضای سایت و کسانی که پس از ثبت نام وارد سایت شده اند ، صفحات یا لینک های خاصی را مشاهده نمایند . برای این منظور بایستی سیستمی طراحی کرد تا افراد بتوانند ابتدا در سایت ثبت نام کنند ، سپس با نام کاربری و رمز عبور خود وارد سایت شده و از امکانات آن استفاده نمایند . همچنین بایستی ترتیبی اتخاذ کرد تا اعضای غیر عضو نتوانند اطلاعات اصلی را مشاهده کرد و برای مشاهده آنها به صفحه ثبت نام راهنمایی شوند .

کارهای انجام شده در این راهکار عبارتند از :

  • ایجاد یک وب سایت ASP.Net .
  • طراحی یک صفحه home page که برای تمامی کاربران قابل دسترسی است .
  • طراحی یک صفحه ورود به سایت ( login page ) .
  • طراحی یک صفحه که فقط برای اعضا قابل دسترسی است ( members-only page) .
  • انجام تنظیمات عضویت وب سایت .
  • اضافه کردن کاربران جدید .
  • ایجاد امکان تعویض رمز برای کاربران .
  • ایجاد امکانی برای بازیابی رمز عبور کاربرانی که رمز خود را فراموش کرده اند .

برای حمایت از این پروژه ، کتاب راهکارهای موثر در ASP.Net را دانلود نمایید ...

پیش نیازها :

برای اجرای این راهکار نیاز دارید تا برنامه های زیر بر روی سایت شما نصب شده باشد :

  1. Microsoft Visual Studio .
  2. Microsoft .NET Framework version 2.0 .
  3. SQL Server Express که بر روی کامپیوتر شما نصب شده باشد . این برنامه معمولا با ویژوال استودیو نصب می شود .
  4. دسترسی به یک میل سرور برای ارسال ایملیل های عضویت و بازیابی رمز عبور ( اگر میل سرور نداشته باشید ، نمی توانید برای کاربران خود ایمیل ارسال نمایید ) .

مرحله اول - طراحی یک سایت ASP.Net :

در مرحله اول از راهکار بایستی یک سایت ASP.Net را برای اجرای پروژه خود ایجاد نمایید . فرض بر این است که سایت را قبلا ایجاد کرده و یا با نحوه اجرای آن آشنایی دارید ، در غیر اینصورت به راهکار شماره 1-1 : نحوه ایجاد یک وب سایت ASP.Net در ویژوال استودیو بروید .

مرحله دوم - طراحی صفحه home page :

در مرحله دوم صفحه home page را طراحی می کنیم که کاربران با آن شروع کرده و برای همه قابل دسترس است . برای این منظور مراحل زیر را انجام دهید :

  1. در منوی Solution Explorer بر روی نام وب سایت کلیک راست کرده و گزینه Add New Item را انتخاب نمایید تا پنجره آن مطابق عکس زیر باز شود :

  2. از پنجره باز شده ، گزینه Web Form را انتخاب کرده ، نام آن که ( Default.aspx ) تعیین شده را بدون تغییر رها نموده و گزینه Add را بزنید .
  3. به نمای Design صفحه home رفته و در بالای آن یک هدر با عنوان My Home Page تایپ نمایید .

مرحله سوم - طراحی صفحه login page :

در بخش دیگری از پروژه بایستی صفحه هایی طراحی نماییم تا از طریق آن کاربران بتوانند وارد سایت شده و برنامه هویت آنها را تشخیص دهد . برای این منظور یک صفحه ورود یا login page را طی مراحل زیر می سازیم :

  1. مجددا بر روی نام وب سایت در منوی Solution Explorer کلیک راست کرده و پنجره Add New Item را باز کنید .
  2. گزینه Web Form را انتخاب کرده و سپس نام آن را به Login.aspx تغییر دهید و گزینه OK را بزنید .
  3. صفحه Login.aspx را باز کرده و به نمای Design بروید . در بالای صفحه عبارتی مثل Login Page را قرار دهید تا کاربر متوجه شود این صفحه ، صفحه ورود به سایت است .
  4. از منوی Toolbox و بخش کنترل های Login ، یک کنترل Login را درگ کرده و در زیر عنوان صفحه قرار دهید .

کنترل Login کنترل ساده ای است که از کاربر اطلاعات لازم جهت ورود به سایت مثل رمز کاربری و نام کاربری را درخواست کرده و آنها را اعتبارسنجی می کند . می توانید از گزینه Auto Format از منوی smart tag کنترل که بصورت یک فلش بر روی آن نمایش داده می شود ، برای تغییر ظاهر کنترل استفاده نمایید .

نمایش Error های رخ داده در کار با کنترل Login :

کنترل Login بصورت درون ساخته دارای قابلیت های اعتبارسنجی ورود اطلاعات است تا به کاربران کمک کند اطلاعات صحیح را درون فرم وارد نمایند . برای مثال ، اگر کاربر فراموش نماید تا در کادر رمز، رمز عبور خود را وارد نماید یک علامت ( * ) قرمز رنگ در کنار کادر آن نمایش داده می شود . برای نمایش اطلاعات جامع تر درباره خطاهای احتمالی رخ داده در این کنترل ، می توانید از یک کنترل ValidationSummary مطابق مراحل زیر استفاده نمایید :

  1. از قسمت کنترل های Validation منوی Toolbox یک کنترل ValidationSummary را بر روی صفحه قرار داده و مقدار خاصیت ValidationGroup آن را به Login1 که ID کنترل Login موجود بر روی صفحه است تغییر دهید ( برای ارتباط دو کنترل با هم ) .
  2. صفحه را ذخیره کرده و آن را ببندید .

امتحان کردن صفحه ورود به سایت ( login page ) و مشاهده نحوه عملکرد کنترل ValidationSummary :

  1. صفحه Login.aspx را باز کرده و گزینه View in Browser را انتخاب کنید .
  2. بدون اینکه اطلاعاتی در کنترل های صفحه وارد کنید ، بر روی گزینه Log In کلیک نمایید .
  3. در کنار کادرهای User Name و Password ، یک علامت ( * ) قرار می گیرد تا به شما اعلام کند ، اطلاعات را وارد نکرده اید . همچنین در پایین صفحه کنترل ValidationSummary ، توضیحاتی راجع به خطاهای رخ داده را بصورت مفصل تر ارائه می دهد .
  4. صفحه را ببندید .

مرحله چهارم - نحوه تنظیم صفحه جهت نمایش وضعیت ورود کاربران :

مرحله بعدی در راهکار تنظیم صفحه home برای نمایش وضعیت ورود کاربر یا عدم ورود آن به سایت است . کاربرانی که عضو نبوده یا در سایت وارد نشده اند ، پیامی مشاهده خواهند کرد که آنها را دعوت به ورود یا ثبت نام در سایت می کند . برعکس کاربران وارد شده با یک پیام خوش آمد گویی به همراه نام کاربریشان مواجه می شوند .

نحوه تنظیم صفحه جهت نمایش وضعیت ورود کاربران :

  1. صفحه Default.aspx را باز کرده و به حالت Design بروید .
  2. از بخش کنترل های Login منوی Toolbox ، یک کنترل LoginView را بر روی صفحه قرار دهید . کنترل LoginView با تمپلیت AnonymousTemplate خود بصورت پیش فرض باز می شود . این تمپلیت اطلاعات یا پیامی را در خود نگهداری می کند که به کاربران قبل از ورود به سایت نمایش داده خواهد شد .
  3. کنترل LoginView را انتخاب کنید . در بخش قابل ویرایش کنترل درون تمپلیت AnonymousTemplate ، متن زیر را وارد کنید :
    " شما هنوز وارد سایت نشده اید . برای ورود یا ثبت نام کلیک نمایید "
  4. راه ساده تر این است که متن مورد نظر خود را بصورت مستقیم در حالت کد صفحه Source ، درون تگ کنترل وارد کنید . همانند کد زیر :
    کد <asp:LoginView ID="LoginView1" runat="server" >
         <AnonymousTemplate>
             شما هنوز وارد سایت نشده اید . برای ورود یا ثبت نام کلیک نمایید
         </AnonymousTemplate>
    </asp:LoginView>
  5. مجددا در حالت Design کنترل LoginView را انتخاب کنید . در پنل LoginView Tasks ، از لیست Views گزینه LoggedInTemplate را انتخاب کنید تا تمپلیت آن باز شود . تمپلیت LoggedInTemplate ، اطلاعات یا پیام را نگهداری می کند که به کاربران وارد شده در سایت ، نمایش داده خواهد شد .
  6. در بخش تمپلیت LoggedInTemplate یک عبارت جهت خوش آمد گویی به کاربر نوشته و پس از آن یک کنترل LoginName را از منوی Toolbox درگ کرده و قرار دهید . این کنترل نام کاربر وارد شده به سایت را نمایش خواهد داد .
  7. مجددا از بخش کنترل های Login منوی Toolbox ، یک کنترل LoginStatus را بر روی صفحه قرار دهید . این کنترل یک لینک جهت ورود به سایت به کاربران وارد نشده و یک لینک Log Out به کاربران وارد شده نمایش می دهد .
  8. صفحه را ذخیره نمایید .

مرحله پنجم - طراحی صفحه یا صفحات برای کاربران ثبت نام کرده :

مرحله بعدی در راهکار طراحی صفحات مخصوص کاربران ثبت نام شده در سایت است .  سیاست بسیاری از سایت این است که صفحات یا محتویات خاصی را ، فقط کاربران ثبت نام شده در سایت نمایش دهند . برای این منظور روش معمولی این است که درون وب سایت پوشه یا پوشه هایی را ایجاد کرده و صفحات مورد نظر خود را در آنها قرار دهیم . سپس قوانینی را برای دسترسی کاربران به پوشه تعیین می کنیم که به تمام صفحات درون آن اعمال خواهد شد .
برای این منظورمراحل زیر را انجام دهید :

  1. در منوی Solution Explorer بر روی نام وب کلیک راست کرده و گزینه New Folder را کلیک نمایید . نام فولدر جدید ایجاد شده را به MemberPages تغییر دهید .
  2. بر روی پوشه MemberPages کلیک راست کرده و گزینه Add New Item را انتخاب کنید . از پنجره باز شده یک صفحه جدید با نام Members.aspx را به آن اضافه نمایید .
  3. صفحه Members.aspx را باز کرده و یک عنوان دلخواه را در آن بنویسید .

شما می توانید لینکی را در صفحه خانه home قرار دهید تا کاربران را به صفحه members-only page راهنمایی نماید . در یک application واقعی این لینک را در صفحه بایستی درون تمپلیت logged-in template کنترل LoginView قرار داد تا فقط کاربران وارد شده به سایت بتوانند آن را ببینند . اما در این راهکار ما عمدتا می خواهیم تا این لینک به همه کابران نمایش داده شده و نتیجه کلیک یک کابر وارد نشده به سایت بر روی آن را بررسی کنیم .

نحوه لینک دادن به صفحه Members Only :

  1. صفحه Default.aspx را باز کرده و به نمای Design بروید .
  2. از بخش Standard منوی Toolbox یک کنترل HyperLink را بر روی صفحه قرار دهید .
  3. در منوی Properties کنترل HyperLink مقدار خواص زیر را تنظیم کنید :
    1. مقدار خاصیت Text آن را به Members-only page تغییر دهید .
    2. مقدار خاصیت NavigateUrl آن را به MemberPages/Members.aspx/~ تغییر دهید . این آدرس شما را به صفحه فوق هدایت می کند .
  4. صفحه را ذخیره کرده و ببندید .

مرحله ششم - انجام تنظیمات عضویت وب سایت :

قدم بعدی در این راهکار ، تنظیم سیستم عضویت ASP.Net و ثبت نام کاربران است . برای این منظور می توانید از ابزار Web Site Administration Tool نرم افزار ویژوال استودیو که یک ابزار ویزارد گونه است برای انجام تنظیمات استفاده نمایید . پس از انجام کلیه تنظیمات لازم توسط این ابزار ، یک پایگاه داده SQL Server به نام ASPNETDB.MDF در پوشه App_Data پروژه ایجاد می شود . این پایگاه داده حاوی اطلاعات عضویت در وب سایت شماست .

در این بخش از راهکار بوسیله این ابزار ، یک کاربر جدید را ایجاد می کنیم :

  1. از منوی Website یا  Project  ، گزینه ASP.NET Configuration را کلیک نمایید .
    ویزارد ASP.NET Configuration مطابق تصویر زیر باز می شود :
  2. لبه Security را انتخاب کرده و لینک Use the security Setup Wizard to configure security step by step را کلیک نمایید . سپس گزینه Next را بزنید . ویزارد صفحه ای را به شما نمایش خواهد داد که در آن می توانید سیستم تشخیص هویت و ورود کاربر را برای سایت خود تعیین کنید .
  3. گزینه From the Internet را انتخاب کنید . این گزینه تعیین می کند که وب سایت شما از سیستم ASP.NET forms authentication تعیین فرم های ASP.Net برای اهراز هویت کاربران استفاده می کند . هنگامی که از این سیستم استفاده می کنید ، کاربران برای ورود به سایت بایستی از صفحه Log In ای که در مراحل قبلی ایجاد کرده بودید استفاده نمایند .
    برخلاف آن در سیستم From a local area network ، کاربران برای ورود به سایت از اهراز هویت ویندوز استفاده کرده وبرای افرادی مناسب است که از طریق یک شبکه محلی باهم در ارتباط هستند نه از طریق اینترنت .
    مطابق تصویر زیر :
  4. گزینه Next را بزنید . ویزارد به شما اعلام می کند که برنامه شما بر مبنای advanced provider settings یا سیستم پیشرفته عضویت ASP.Net کار خواهد کرد . در این حالت بصورت پیش فرض ، اطلاعات عضویت وب سایت شما در یک پایگاه داده SQL Server در پوشه App_Data نگهداری خواهد شد .
  5. مجددا گزینه Next را بزنید . تیک گزینه Enable roles for this Web site را برداشته و بازهم کلید Next را بزنید ( این کار باعث می شود تا قوانین دسترسی به پوشه های سایت را بعدا اعمال نمایید ) .
  6. ویزارد صفحه ای را به شما نمایش می دهد که بوسیله آن می توانید کاربران جدید برای وب سایت خود تعریف کنید . اطلاعات لازم برای تعیین یک کاربر جدید را وارد نمایید . این اطلاعات عبارتند از :
    • User Name : نام کاربری بدون فاصله ( Sapce ) .
    • Password : یک رمز عبور که بایستی به اندازه کافی طولانی و محکم باشد ( بایستی شامل حروف بزرگ ، کوچک ، یک علامت و حداقل 8 کاراکتر باشد ) .
    • Email : ایمیل خود را بایستی در این فرم وارد نمایید . به دلیل اینکه کلید ارتباط سایت با شما مثل تایید اکانت ، ؟ کردن رمز و به این ایمیل ارسال می شود ، بایستی ایمیل معتبری را وارد نمایید .
    • Security Question و Security Answer : یک سوال امنیتی و جواب آن در زمان فراموش کردن رمز عبور برای ریست کردن رمز از شما پرسیده خواهد شد .

    مطابق تصویر زیر :
  7. گزینه Active User را علامت بزنید .
  8. سپس بر روی گزینه Create User تا کاربر جدید ایجاد شود . سپس برنامه یک صفحه برای انجام سایر تنظیمات را نمایش می دهد .

مرحله هفتم - تنظیم قوانین دسترسی به صفحات سایت توسط کاربران :

در مراحل قبل تر در این راهکار ، ما یک پوشه به نام MemberPages با یک صفحه به نام members-only page در سایت ایجاد کردیم . اکنون می خواهیم قانون ( rule ) را تنظیم کنیم تا فقط کاربران وارد شده به سایت بتوانند به این پوشه و صفحات و محتویات درون آن دسترسی داشته باشند .برای این منظور مراحل زیر را انجام می دهیم :

  1. در بخش Security ویزارد Web Site Administration Tool ، گزینه Next را بزنید . ویزارد صفحه Add New Access Rules را باز می کند .
  2. در جعبه Add New Access Rules ، گره مربوط به سایت خود را باز کرده و پوشه MemberPages را انتخاب کنید .
  3. در زیر بخش Rule applies to گزینه Anonymous Users را انتخاب کنید . سپس از بخش Permission ، گزینه Deny را تعیین کنید . قانونی که در مرحله 3 تعیین کرده ایم از دسترسی کاربرانی که به سایت وارد نشده اند ( anonymous users ) به پوشه MemberPages جلوگیری می کند .
  4. گزینه Add This Rule را در نهایت فشار دهید . قانون جدید به جدول قوانین اضافه می شود . هنگامی که کاربر صفحه ای از پوشه MemberPages را درخواست می کند ، برنامه چک می کند آیا این کاربر امکان دسترسی به صفحه را داشته یا خیر .
    تصویر بخش تعیین قانون برای دسترسی به پوشه به صورت زیر است :

اکنون کار ما با ویزارد به پایان رسیده و با بستن آن ، مجددا به لبه Security در ابزار Web Site Administration Tool برمی گردیم .

نحوه آزمایش دسترسی به صفحات موجود در پوشه MemberPages :

اکنون می توانید امکان دسترسی به صفحه Members.aspx را با اکانت یا بدون ورود به سایت امتحان کنید :

  1. در برنامه ویژوال استودیو ، صفحه Default.aspx را باز کرده و کنترل های CTRL + F5 را برای اجرای سایت فشار دهید .
  2. هنگامی که صفحه Default.aspx در مرورگر باز شد ، به سایت log in نکنید و بر روی لینک Members-only page کلیک نمایید . برنامه به دلیل اینکه شما وارد سایت نشده اید، به جای صفحه درخواستی ، صفحه Login.aspx را به شما نمایش می دهد .
  3. این بار در صفحه 9Login.aspx ، مشخصات کاربری خود را وارد کرده و وارد سایت شوید . سپس مجددا بر روی لینک Members-only page کلیک نمایید . این بار برنامه صفحه درخواستی را به دلیل اینکه شما یک کاربر ثبت شده در سایت هستید ، نمایش می دهد .
  4. مرورگر را ببندید .

مرحله هشتم - اضافه کردن اعضای جدید :

در بخش قبلی این راهکار ، ما یک کاربر جدید را به وسیله ابزار Web Site Administration Tool. ایجاد کردیم . این ابزار برای کار در پروژه های کوچک که چندین نفر به عنوان عضو درون آن هستند و یا برای اضافه کردن دستی اعضا توسط ادمین سایت مناسب است . اما در روش معمول وب سایت ، کاربران با مراجعه به صفحه خاصی ، خودشان اقدام به ثبت نام در سایت می کنند .
برای فعال کردن این امکان در وب سایتتان ، ASP.Net دارای کنترلی به نام CreateUserWizard است که تمامی امور و امکانات لازم برای ثبت نام اعضا در سایت را برای شما فراهم می کند . در این بخش از راهکار ، قصد داریم تا ساز و کاری را طراحی کنیم تا کاربران بتوانند برای عضویت در سایت اقدام کنند . برای این منظور در مرحله اول صفحه ثبت نام یا registration page را به روش زیر ایجاد می کنیم :

  1. بر روی نام وب سایت در منوی Solution Explorer کلیک راست کرده و گزینه Add New Item را انتخاب کنید .
  2.  یک فایل Web Form با نام Register.aspx را به سایت اضافه کنید ( در پوشه اصلی  root سایت ) .
  3.  در صفحه Register.aspx به نمای Design رفته و یک عنوان با محتوای " صفحه ثبت نام " را در بالای آن قرار دهید .
  4. از گروه کنترل های Login منوی Toolbox ، یک کنترل CreateUserWizard  را بر روی صفحه قرار دهید .
  5. در منوی Properties کنترل CreateUserWizard ، مقدار خاصیت ContinueDestinationPageUrl آن را برابر با Default.aspx/~ قرار دهید . این کار باعث می شود تا کاربر پس از انجام کلیه مراحل ثبت نام ، در نهایت با زدن کلید Continue کنترل CreateUserWizard ، به صفحه home برود .
  6.  از گروه کنترل های Standard منوی Toolbox ، یک کنترل HyperLink  را بر روی صفحه قرار دهید . سپس خواص آن را به مقادیر زیر تعیین کنید :
    1. - مقدار خاصیت Text آن را به Home تغییر دهید .
    2. - مقدار خاصیت NavigateUrl آن را به Default.aspx/~ تغییر دهید .
  7. 6) صفحه را ذخیره کرده و ببندید .

در این مرحله از راهکار ، می خواهیم لینک دسترسی به صفحه ثبت نام را بر روی هر دو صفحه home و  login قرار دهیم . این لینک را باید به گونه ای تنظیم نماییم که فقط به کاربران غیر عضو سایت نمایش داده شود .

طراحی لینک به صفحه ثبت نام در صفحه home :

  1. صفحه Default.aspx را باز کرده و به نمای Design بروید .
  2. بر روی کنترل LoginView که قبلا به صفحه اضافه کرده بودید ، کلیک راست کرده و گزینه Show Smart Tag را بزنید .
  3. در پنل LoginView Tasks کنترل ، از لیست Views گزینه AnonymousTemplate را انتخاب نمایید ، تا بخش مربوط به آن برای قرار دادن کنترل مورد نظرمان باز شود .
  4. از بخش کنترل های استاندارد منوی Toolbox یک کنترل HyperLink را درگ کرده و در بخش AnonymousTemplate کنترل LoginView قرار دهید .
  5. از منوی Properties کنترل HyperLink  خواص زیر را به مقادیر گفته شده ، تنظیم نمایید :
    1. - مقدار خاصیت Text آن را به Register تعیین کنید .
    2. - مقدار خاصیت NavigateUrl کنترل را به مقدار Register.aspx تعیین کنید .
  6. مجددا همین کار را عینا برای صفحه Login.aspx انجام دهید .

امتحان کردن سیستم ثبت نام :

  1. به صفحه Default.aspx رفته و کنترل های CTRL + F5 را برای اجرای سایت فشار دهید . به دلیل اینکه شما هنوز وارد سایت نشده اید ، لینک Register نمایش داده می شود .
  2. لینک Register را کلیک نمایید . صفحه ثبت نام نمایش داده می شود .
  3. در کادرهای متن تعیین شده ، نام کاربری ، رمز عبور ، آدرس ایمیل و ... را وارد نموده ( تمامی این اطلاعات ضروری هستند ) و سپس بر روی گزینه Create User کلیک نمایید . یک صفحه حاوی اطلاعات تایید نمایش داده شده و عملیات ثبت نام خاتمه میابد .
  4. گزینه Continue را بزنید . با این کار به عنوان یک کاربر وارد شده در سایت به صفحه home page بازمی گردید . توجه داشته باشید که لینک Log In به Log Out تغییر یافته و اطلاعات بخش LoggedInTemplate کنترل Login به جای اطلاعات بخش AnonymousTemplate نمایش داده می شود .
  5. لینک Log Out را کلیک نمایید . صفحه به گونه ای که اطلاعات کاربران وارد شده ( Anonymous User ) را نمایش می دهد ، تغیییر می کند .
  6. کنترل Log In را کلیک نمایید . صفحه Login Page باز شده و اطلاعات کاربری خود را مجددا برای ورود وارد نمایید .
  7. در نهایت مرورگر را ببندید .

دانلود فایل عملی پروژه و نسخه PDF راهکار



راجع این مطلب سوال یا اشکالی دارید ؟! آن را در انجمن سایت مطرح نمایید ...         >>>>>  ورود به انجمن تخصصی


نطر خودتان درباره این صفحه را با ما در میان گذاشته و در صورت تمایل از Developer1 حمایت نمایید :

آیا مطالب این صفحه برای شما مناسب و مفید بوده است :

نام :                 
آدرس Email :    
 
نظر شما :  
 
سوال امنیتی : پایتخت ایران ؟      
حمایت از سایت Developer1