راهکارهای موثر در ASP.Net > راهکار 2 - 5 : ساخت یک سایت ASP.Net با قابلیت عضوگیری
و ورود اعضا
مقدمه :
یکی از نیازهای مهم و حیاتی در وب سایت ها ، ایجاد ساز و کاریست تا فقط اعضای سایت
و کسانی که پس از ثبت نام وارد سایت شده اند ، صفحات یا لینک های خاصی را مشاهده نمایند
. برای این منظور بایستی سیستمی طراحی کرد تا افراد بتوانند ابتدا در سایت ثبت نام
کنند ، سپس با نام کاربری و رمز عبور خود وارد سایت شده و از امکانات آن استفاده نمایند
. همچنین بایستی ترتیبی اتخاذ کرد تا اعضای غیر عضو نتوانند اطلاعات اصلی را مشاهده
کرد و برای مشاهده آنها به صفحه ثبت نام راهنمایی شوند .
کارهای انجام شده در این راهکار عبارتند از :
- ایجاد یک وب سایت ASP.Net .
- طراحی یک صفحه home page که برای تمامی کاربران قابل دسترسی است .
- طراحی یک صفحه ورود به سایت ( login page ) .
- طراحی یک صفحه که فقط برای اعضا قابل دسترسی است ( members-only page) .
- انجام تنظیمات عضویت وب سایت .
- اضافه کردن کاربران جدید .
- ایجاد امکان تعویض رمز برای کاربران .
- ایجاد امکانی برای بازیابی رمز عبور کاربرانی که رمز خود را فراموش کرده اند .
برای حمایت از این پروژه ، کتاب
راهکارهای موثر در ASP.Net را دانلود نمایید ...
پیش نیازها :
برای اجرای این راهکار نیاز دارید تا برنامه های زیر بر روی سایت شما نصب شده باشد
:
- Microsoft Visual Studio .
- Microsoft .NET Framework version 2.0 .
- SQL Server Express که بر روی کامپیوتر شما نصب شده باشد . این برنامه معمولا با ویژوال
استودیو نصب می شود .
- دسترسی به یک میل سرور برای ارسال ایملیل های عضویت و بازیابی رمز عبور ( اگر میل سرور
نداشته باشید ، نمی توانید برای کاربران خود ایمیل ارسال نمایید ) .
مرحله اول - طراحی یک سایت ASP.Net :
در مرحله اول از راهکار بایستی یک سایت ASP.Net را برای اجرای پروژه خود ایجاد نمایید
. فرض بر این است که سایت را قبلا ایجاد کرده و یا با نحوه اجرای آن آشنایی دارید ،
در غیر اینصورت به راهکار شماره 1-1 : نحوه ایجاد یک وب سایت ASP.Net در ویژوال استودیو
بروید .
مرحله دوم - طراحی صفحه home page :
در مرحله دوم صفحه home page را طراحی می کنیم که کاربران با آن شروع کرده و برای همه
قابل دسترس است . برای این منظور مراحل زیر را انجام دهید :
- در منوی Solution Explorer بر روی نام وب سایت کلیک راست کرده و گزینه Add New Item
را انتخاب نمایید تا پنجره آن مطابق عکس زیر باز شود :
- از پنجره باز شده ، گزینه Web Form را انتخاب کرده ، نام آن که ( Default.aspx ) تعیین
شده را بدون تغییر رها نموده و گزینه Add را بزنید .
- به نمای Design صفحه home رفته و در بالای آن یک هدر با عنوان My Home Page تایپ نمایید
.
مرحله سوم - طراحی صفحه login page :
در بخش دیگری از پروژه بایستی صفحه هایی طراحی نماییم تا از طریق آن کاربران بتوانند
وارد سایت شده و برنامه هویت آنها را تشخیص دهد . برای این منظور یک صفحه ورود یا login
page را طی مراحل زیر می سازیم :
- مجددا بر روی نام وب سایت در منوی Solution Explorer کلیک راست کرده و پنجره Add New
Item را باز کنید .
- گزینه Web Form را انتخاب کرده و سپس نام آن را به Login.aspx تغییر دهید و گزینه OK
را بزنید .
- صفحه Login.aspx را باز کرده و به نمای Design بروید . در بالای صفحه عبارتی مثل Login
Page را قرار دهید تا کاربر متوجه شود این صفحه ، صفحه ورود به سایت است .
- از منوی Toolbox و بخش کنترل های Login ، یک کنترل Login را درگ کرده و در زیر عنوان
صفحه قرار دهید .
کنترل Login کنترل ساده ای است که از کاربر اطلاعات لازم جهت ورود به سایت مثل رمز
کاربری و نام کاربری را درخواست کرده و آنها را اعتبارسنجی می کند . می توانید از گزینه
Auto Format از منوی smart tag کنترل که بصورت یک فلش بر روی آن نمایش داده می شود
، برای تغییر ظاهر کنترل استفاده نمایید .
نمایش Error های رخ داده در کار با کنترل Login :
کنترل Login بصورت درون ساخته دارای قابلیت های اعتبارسنجی ورود اطلاعات است تا به
کاربران کمک کند اطلاعات صحیح را درون فرم وارد نمایند . برای مثال ، اگر کاربر فراموش
نماید تا در کادر رمز، رمز عبور خود را وارد نماید یک علامت ( * ) قرمز رنگ در کنار
کادر آن نمایش داده می شود . برای نمایش اطلاعات جامع تر درباره خطاهای احتمالی رخ
داده در این کنترل ، می توانید از یک کنترل ValidationSummary مطابق مراحل زیر استفاده
نمایید :
- از قسمت کنترل های Validation منوی Toolbox یک کنترل ValidationSummary را بر روی صفحه
قرار داده و مقدار خاصیت ValidationGroup آن را به Login1 که ID کنترل Login موجود
بر روی صفحه است تغییر دهید ( برای ارتباط دو کنترل با هم ) .
- صفحه را ذخیره کرده و آن را ببندید .
امتحان کردن صفحه ورود به سایت ( login page ) و مشاهده نحوه عملکرد کنترل ValidationSummary
:
- صفحه Login.aspx را باز کرده و گزینه View in Browser را انتخاب کنید .
- بدون اینکه اطلاعاتی در کنترل های صفحه وارد کنید ، بر روی گزینه Log In کلیک نمایید
.
- در کنار کادرهای User Name و Password ، یک علامت ( * ) قرار می گیرد تا به شما اعلام
کند ، اطلاعات را وارد نکرده اید . همچنین در پایین صفحه کنترل ValidationSummary ،
توضیحاتی راجع به خطاهای رخ داده را بصورت مفصل تر ارائه می دهد .
- صفحه را ببندید .
مرحله چهارم - نحوه تنظیم صفحه جهت نمایش وضعیت ورود کاربران :
مرحله بعدی در راهکار تنظیم صفحه home برای نمایش وضعیت ورود کاربر یا عدم ورود آن
به سایت است . کاربرانی که عضو نبوده یا در سایت وارد نشده اند ، پیامی مشاهده خواهند
کرد که آنها را دعوت به ورود یا ثبت نام در سایت می کند . برعکس کاربران وارد شده با
یک پیام خوش آمد گویی به همراه نام کاربریشان مواجه می شوند .
نحوه تنظیم صفحه جهت نمایش وضعیت ورود کاربران :
- صفحه Default.aspx را باز کرده و به حالت Design بروید .
- از بخش کنترل های Login منوی Toolbox ، یک کنترل LoginView را بر روی صفحه قرار دهید
. کنترل LoginView با تمپلیت AnonymousTemplate خود بصورت پیش فرض باز می شود . این
تمپلیت اطلاعات یا پیامی را در خود نگهداری می کند که به کاربران قبل از ورود به سایت
نمایش داده خواهد شد .
- کنترل LoginView را انتخاب کنید . در بخش قابل ویرایش کنترل درون تمپلیت AnonymousTemplate
، متن زیر را وارد کنید :
" شما هنوز وارد سایت نشده اید . برای ورود یا ثبت نام کلیک نمایید "
- راه ساده تر این است که متن مورد نظر خود را بصورت مستقیم در حالت کد صفحه Source ،
درون تگ کنترل وارد کنید . همانند کد زیر :
|
کد
|
<asp:LoginView ID="LoginView1" runat="server" >
<AnonymousTemplate>
شما هنوز وارد سایت
نشده اید . برای ورود یا ثبت نام کلیک نمایید
</AnonymousTemplate>
</asp:LoginView>
|
- مجددا در حالت Design کنترل LoginView را انتخاب کنید . در پنل LoginView Tasks ، از
لیست Views گزینه LoggedInTemplate را انتخاب کنید تا تمپلیت آن باز شود . تمپلیت LoggedInTemplate
، اطلاعات یا پیام را نگهداری می کند که به کاربران وارد شده در سایت ، نمایش داده
خواهد شد .
- در بخش تمپلیت LoggedInTemplate یک عبارت جهت خوش آمد گویی به کاربر نوشته و پس از
آن یک کنترل LoginName را از منوی Toolbox درگ کرده و قرار دهید . این کنترل نام کاربر
وارد شده به سایت را نمایش خواهد داد .
- مجددا از بخش کنترل های Login منوی Toolbox ، یک کنترل LoginStatus را بر روی صفحه
قرار دهید . این کنترل یک لینک جهت ورود به سایت به کاربران وارد نشده و یک لینک Log
Out به کاربران وارد شده نمایش می دهد .
- صفحه را ذخیره نمایید .
مرحله پنجم - طراحی صفحه یا صفحات برای کاربران ثبت نام کرده :
مرحله بعدی در راهکار طراحی صفحات مخصوص کاربران ثبت نام شده در سایت است . سیاست
بسیاری از سایت این است که صفحات یا محتویات خاصی را ، فقط کاربران ثبت نام شده در
سایت نمایش دهند . برای این منظور روش معمولی این است که درون وب سایت پوشه یا پوشه
هایی را ایجاد کرده و صفحات مورد نظر خود را در آنها قرار دهیم . سپس قوانینی را برای
دسترسی کاربران به پوشه تعیین می کنیم که به تمام صفحات درون آن اعمال خواهد شد .
برای این منظورمراحل زیر را انجام دهید :
- در منوی Solution Explorer بر روی نام وب کلیک راست کرده و گزینه New Folder را کلیک
نمایید . نام فولدر جدید ایجاد شده را به MemberPages تغییر دهید .
- بر روی پوشه MemberPages کلیک راست کرده و گزینه Add New Item را انتخاب کنید . از
پنجره باز شده یک صفحه جدید با نام Members.aspx را به آن اضافه نمایید .
- صفحه Members.aspx را باز کرده و یک عنوان دلخواه را در آن بنویسید .
شما می توانید لینکی را در صفحه خانه home قرار دهید تا کاربران را به صفحه members-only
page راهنمایی نماید . در یک application واقعی این لینک را در صفحه بایستی درون تمپلیت
logged-in template کنترل LoginView قرار داد تا فقط کاربران وارد شده به سایت بتوانند
آن را ببینند . اما در این راهکار ما عمدتا می خواهیم تا این لینک به همه کابران نمایش
داده شده و نتیجه کلیک یک کابر وارد نشده به سایت بر روی آن را بررسی کنیم .
نحوه لینک دادن به صفحه Members Only :
- صفحه Default.aspx را باز کرده و به نمای Design بروید .
- از بخش Standard منوی Toolbox یک کنترل HyperLink را بر روی صفحه قرار دهید .
- در منوی Properties کنترل HyperLink مقدار خواص زیر را تنظیم کنید :
- مقدار خاصیت Text آن را به Members-only page تغییر دهید .
- مقدار خاصیت NavigateUrl آن را به MemberPages/Members.aspx/~ تغییر دهید . این آدرس
شما را به صفحه فوق هدایت می کند .
- صفحه را ذخیره کرده و ببندید .
مرحله ششم - انجام تنظیمات عضویت وب سایت :
قدم بعدی در این راهکار ، تنظیم سیستم عضویت ASP.Net و ثبت نام کاربران است . برای
این منظور می توانید از ابزار Web Site Administration Tool نرم افزار ویژوال استودیو
که یک ابزار ویزارد گونه است برای انجام تنظیمات استفاده نمایید . پس از انجام کلیه
تنظیمات لازم توسط این ابزار ، یک پایگاه داده SQL Server به نام ASPNETDB.MDF در پوشه
App_Data پروژه ایجاد می شود . این پایگاه داده حاوی اطلاعات عضویت در وب سایت شماست
.
در این بخش از راهکار بوسیله این ابزار ، یک کاربر جدید را ایجاد می کنیم :
- از منوی Website یا Project ، گزینه ASP.NET Configuration را کلیک نمایید
.
ویزارد ASP.NET Configuration مطابق تصویر زیر باز می شود :
- لبه Security را انتخاب کرده و لینک Use the security Setup Wizard to configure security
step by step را کلیک نمایید . سپس گزینه Next را بزنید . ویزارد صفحه ای را به شما
نمایش خواهد داد که در آن می توانید سیستم تشخیص هویت و ورود کاربر را برای سایت خود
تعیین کنید .
- گزینه From the Internet را انتخاب کنید . این گزینه تعیین می کند که وب سایت شما از
سیستم ASP.NET forms authentication تعیین فرم های ASP.Net برای اهراز هویت کاربران
استفاده می کند . هنگامی که از این سیستم استفاده می کنید ، کاربران برای ورود به سایت
بایستی از صفحه Log In ای که در مراحل قبلی ایجاد کرده بودید استفاده نمایند .
برخلاف آن در سیستم From a local area network ، کاربران برای ورود به سایت از اهراز
هویت ویندوز استفاده کرده وبرای افرادی مناسب است که از طریق یک شبکه محلی باهم در
ارتباط هستند نه از طریق اینترنت .
مطابق تصویر زیر :
- گزینه Next را بزنید . ویزارد به شما اعلام می کند که برنامه شما بر مبنای advanced
provider settings یا سیستم پیشرفته عضویت ASP.Net کار خواهد کرد . در این حالت بصورت
پیش فرض ، اطلاعات عضویت وب سایت شما در یک پایگاه داده SQL Server در پوشه App_Data
نگهداری خواهد شد .
- مجددا گزینه Next را بزنید . تیک گزینه Enable roles for this Web site را برداشته
و بازهم کلید Next را بزنید ( این کار باعث می شود تا قوانین دسترسی به پوشه های سایت
را بعدا اعمال نمایید ) .
- ویزارد صفحه ای را به شما نمایش می دهد که بوسیله آن می توانید کاربران جدید برای وب
سایت خود تعریف کنید . اطلاعات لازم برای تعیین یک کاربر جدید را وارد نمایید . این
اطلاعات عبارتند از :
- User Name : نام کاربری بدون فاصله ( Sapce ) .
- Password : یک رمز عبور که بایستی به اندازه کافی طولانی و
محکم باشد ( بایستی شامل حروف بزرگ ، کوچک ، یک علامت و حداقل 8 کاراکتر باشد ) .
- Email : ایمیل خود را بایستی در این فرم وارد نمایید . به دلیل
اینکه کلید ارتباط سایت با شما مثل تایید اکانت ، ؟ کردن رمز و به این ایمیل ارسال
می شود ، بایستی ایمیل معتبری را وارد نمایید .
- Security Question و Security Answer : یک سوال امنیتی و جواب
آن در زمان فراموش کردن رمز عبور برای ریست کردن رمز از شما پرسیده خواهد شد .
مطابق تصویر زیر :
- گزینه Active User را علامت بزنید .
- سپس بر روی گزینه Create User تا کاربر جدید ایجاد شود . سپس برنامه یک صفحه برای انجام
سایر تنظیمات را نمایش می دهد .
مرحله هفتم - تنظیم قوانین دسترسی به صفحات سایت توسط کاربران :
در مراحل قبل تر در این راهکار ، ما یک پوشه به نام MemberPages با یک صفحه به نام
members-only page در سایت ایجاد کردیم . اکنون می خواهیم قانون ( rule ) را تنظیم
کنیم تا فقط کاربران وارد شده به سایت بتوانند به این پوشه و صفحات و محتویات درون
آن دسترسی داشته باشند .برای این منظور مراحل زیر را انجام می دهیم :
- در بخش Security ویزارد Web Site Administration Tool ، گزینه Next را بزنید . ویزارد
صفحه Add New Access Rules را باز می کند .
- در جعبه Add New Access Rules ، گره مربوط به سایت خود را باز کرده و پوشه MemberPages
را انتخاب کنید .
- در زیر بخش Rule applies to گزینه Anonymous Users را انتخاب کنید . سپس از بخش Permission
، گزینه Deny را تعیین کنید . قانونی که در مرحله 3 تعیین کرده ایم از دسترسی کاربرانی
که به سایت وارد نشده اند ( anonymous users ) به پوشه MemberPages جلوگیری می کند
.
- گزینه Add This Rule را در نهایت فشار دهید . قانون جدید به جدول قوانین اضافه می شود
. هنگامی که کاربر صفحه ای از پوشه MemberPages را درخواست می کند ، برنامه چک می کند
آیا این کاربر امکان دسترسی به صفحه را داشته یا خیر .
تصویر بخش تعیین قانون برای دسترسی به پوشه به صورت زیر است :
اکنون کار ما با ویزارد به پایان رسیده و با بستن آن ، مجددا به لبه Security در ابزار
Web Site Administration Tool برمی گردیم .
نحوه آزمایش دسترسی به صفحات موجود در پوشه MemberPages :
اکنون می توانید امکان دسترسی به صفحه Members.aspx را با اکانت یا بدون ورود به سایت
امتحان کنید :
- در برنامه ویژوال استودیو ، صفحه Default.aspx را باز کرده و کنترل های CTRL + F5 را
برای اجرای سایت فشار دهید .
- هنگامی که صفحه Default.aspx در مرورگر باز شد ، به سایت log in نکنید و بر روی لینک
Members-only page کلیک نمایید . برنامه به دلیل اینکه شما وارد سایت نشده اید، به
جای صفحه درخواستی ، صفحه Login.aspx را به شما نمایش می دهد .
- این بار در صفحه 9Login.aspx ، مشخصات کاربری خود را وارد کرده و وارد سایت شوید .
سپس مجددا بر روی لینک Members-only page کلیک نمایید . این بار برنامه صفحه درخواستی
را به دلیل اینکه شما یک کاربر ثبت شده در سایت هستید ، نمایش می دهد .
- مرورگر را ببندید .
مرحله هشتم - اضافه کردن اعضای جدید :
در بخش قبلی این راهکار ، ما یک کاربر جدید را به وسیله ابزار Web Site Administration
Tool. ایجاد کردیم . این ابزار برای کار در پروژه های کوچک که چندین نفر به عنوان عضو
درون آن هستند و یا برای اضافه کردن دستی اعضا توسط ادمین سایت مناسب است . اما در
روش معمول وب سایت ، کاربران با مراجعه به صفحه خاصی ، خودشان اقدام به ثبت نام در
سایت می کنند .
برای فعال کردن این امکان در وب سایتتان ، ASP.Net دارای کنترلی به نام CreateUserWizard
است که تمامی امور و امکانات لازم برای ثبت نام اعضا در سایت را برای شما فراهم می
کند . در این بخش از راهکار ، قصد داریم تا ساز و کاری را طراحی کنیم تا کاربران بتوانند
برای عضویت در سایت اقدام کنند . برای این منظور در مرحله اول صفحه ثبت نام یا registration
page را به روش زیر ایجاد می کنیم :
- بر روی نام وب سایت در منوی Solution Explorer کلیک راست کرده و گزینه Add New Item
را انتخاب کنید .
- یک فایل Web Form با نام Register.aspx را به سایت اضافه کنید ( در پوشه اصلی
root سایت ) .
- در صفحه Register.aspx به نمای Design رفته و یک عنوان با محتوای " صفحه ثبت
نام " را در بالای آن قرار دهید .
- از گروه کنترل های Login منوی Toolbox ، یک کنترل CreateUserWizard را بر روی
صفحه قرار دهید .
- در منوی Properties کنترل CreateUserWizard ، مقدار خاصیت ContinueDestinationPageUrl
آن را برابر با Default.aspx/~ قرار دهید . این کار باعث می شود تا کاربر پس از
انجام کلیه مراحل ثبت نام ، در نهایت با زدن کلید Continue کنترل CreateUserWizard
، به صفحه home برود .
- از گروه کنترل های Standard منوی Toolbox ، یک کنترل HyperLink را بر روی
صفحه قرار دهید . سپس خواص آن را به مقادیر زیر تعیین کنید :
- - مقدار خاصیت Text آن را به Home تغییر دهید .
- - مقدار خاصیت NavigateUrl آن را به Default.aspx/~ تغییر دهید .
- 6) صفحه را ذخیره کرده و ببندید .
در این مرحله از راهکار ، می خواهیم لینک دسترسی به صفحه ثبت نام را بر روی هر دو صفحه
home و login قرار دهیم . این لینک را باید به گونه ای تنظیم نماییم که فقط به
کاربران غیر عضو سایت نمایش داده شود .
طراحی لینک به صفحه ثبت نام در صفحه home :
- صفحه Default.aspx را باز کرده و به نمای Design بروید .
- بر روی کنترل LoginView که قبلا به صفحه اضافه کرده بودید ، کلیک راست کرده و گزینه
Show Smart Tag را بزنید .
- در پنل LoginView Tasks کنترل ، از لیست Views گزینه AnonymousTemplate را انتخاب نمایید
، تا بخش مربوط به آن برای قرار دادن کنترل مورد نظرمان باز شود .
- از بخش کنترل های استاندارد منوی Toolbox یک کنترل HyperLink را درگ کرده و در بخش
AnonymousTemplate کنترل LoginView قرار دهید .
- از منوی Properties کنترل HyperLink خواص زیر را به مقادیر گفته شده ، تنظیم
نمایید :
- - مقدار خاصیت Text آن را به Register تعیین کنید .
- - مقدار خاصیت NavigateUrl کنترل را به مقدار Register.aspx تعیین کنید .
- مجددا همین کار را عینا برای صفحه Login.aspx انجام دهید .
امتحان کردن سیستم ثبت نام :
- به صفحه Default.aspx رفته و کنترل های CTRL + F5 را برای اجرای سایت فشار دهید . به
دلیل اینکه شما هنوز وارد سایت نشده اید ، لینک Register نمایش داده می شود .
- لینک Register را کلیک نمایید . صفحه ثبت نام نمایش داده می شود .
- در کادرهای متن تعیین شده ، نام کاربری ، رمز عبور ، آدرس ایمیل و ... را وارد نموده
( تمامی این اطلاعات ضروری هستند ) و سپس بر روی گزینه Create User کلیک نمایید . یک
صفحه حاوی اطلاعات تایید نمایش داده شده و عملیات ثبت نام خاتمه میابد .
- گزینه Continue را بزنید . با این کار به عنوان یک کاربر وارد شده در سایت به صفحه
home page بازمی گردید . توجه داشته باشید که لینک Log In به Log Out تغییر یافته و
اطلاعات بخش LoggedInTemplate کنترل Login به جای اطلاعات بخش AnonymousTemplate نمایش
داده می شود .
- لینک Log Out را کلیک نمایید . صفحه به گونه ای که اطلاعات کاربران وارد شده ( Anonymous
User ) را نمایش می دهد ، تغیییر می کند .
- کنترل Log In را کلیک نمایید . صفحه Login Page باز شده و اطلاعات کاربری خود را مجددا
برای ورود وارد نمایید .
- در نهایت مرورگر را ببندید .
دانلود فایل عملی پروژه و نسخه PDF راهکار
راجع این مطلب
سوال یا اشکالی دارید ؟! آن را در انجمن سایت مطرح نمایید ...
>>>>> ورود به انجمن تخصصی
نطر خودتان درباره این صفحه را با ما در میان گذاشته و در صورت تمایل از Developer1
حمایت نمایید :