1. مهمان گرامی، جهت ارسال پست، دانلود و سایر امکانات ویژه کاربران عضو، ثبت نام کنید.
    بستن اطلاعیه

اضافه کردن امنیت و عضویت در صفحات وب ASP.NET

شروع موضوع توسط AftabGardoon ‏8/2/19 در انجمن ASP.NET

Tags:
  1. مدیر بازنشسته☕

    تاریخ عضویت:
    ‏15/8/17
    ارسال ها:
    5,336
    تشکر شده:
    42,669
    امتیاز دستاورد:
    113
    افزودن امنیت و عضویت به یک سایت صفحات وب ASP.Net:
    این مقاله چگونگی ایمن کردن وب سایت صفحات ASP.Net را توضیح می دهد، طوریکه برخی صفحات آن فقط در دسترس افرادی می باشد که ثبت نام کرده باشند. (شما همچنین چگونگی ایجاد صفحاتی را خواهید دید که در دسترس همه می باشند.)

    آنچه یاد خواهید گرفت:

    • چگونگی ایجاد وب سایتی که یک صفحه ی ثبت نام و یک صفحه ی login دارد، بنابراین برخی از این صفحات فقط در دسترس افرادی می باشد که login شده اند.
    • چگونگی ایجاد صفحات عمومی و صفحاتی فقط برای اعضا
    • چگونگی تعریف نقش ها و چگونگی اختصاص دادن یوزرها به یک نقش، نقش ها گروه هایی هستند که روی سایت شما اجازه های امنیتی مختلفی دارند.
    • چگونگی استفاده از CAPTCHA برای جلوگیری از برنامه های خودکار شده (bots) از ایجاد اکانت های عضو.
    و ویژگی های ASP.Net نیز که در این مقاله معرفی می شوند، عبارتند از:

    • الگوی ماتریکس وب Starter Site
    • کمک کننده ی WebSecurity و طبقه ی Roles
    • کمک کننده ی ReCaptcha
     
  2. مدیر بازنشسته☕

    تاریخ عضویت:
    ‏15/8/17
    ارسال ها:
    5,336
    تشکر شده:
    42,669
    امتیاز دستاورد:
    113
    ورژن های نرو افزار استفاده شده در آموزش
    شما می توانید وب سایت خود را طوری طراحی کنید که یوزرها بتوانند در آن ثبت نام کنند، بنابراین سایت membership را پشتیبانی می کند. این امر به دلایل مختلفی می تواند مفید باشد، برای مثال سایت شما ممکن است دارای صفحاتی باشد که فقط در دسترس اعضا باشند. در برخی موارد شما می توانید یوزرها را ملزم کنید تا برای ارسال فیدبک و یا گذاشتن کامنت login را انجام دهند. حتی اگر وب سایت شما membership را پشتیبانی می کند، یوزرها مجبور نیستند قبل از استفاده از برخی صفحات وب لزوما log in را انجام دهند. یوزرهایی که ورود به سیستم راانجام نداده اند به عنوان یوزرهای ناشناس (anonymous users ) شناخته می شوند. یک یوزر می تواند در وب سایت شما ثبت نام کرده و سپس وارد سایت شود. وب سایت به نام یوزر (آدرس ایمیل) و یک پسوورد برای تایید هویت یک یوزر که با عنوان authentication شناخته می شود، نیاز دارد.

    شما می توانید امنیت و عضویت را به روش های مختلف تنظیم کنید:

    • اگر از WebMatrix استفاده می کنید، راه آسانی برای ایجاد یک سایت جدید براساس الگوی Starter Site می باشد. این الگو تقریبا برای امنیت و عضویت تنظیم شده و دارای یک صفحه ی ثبت نام، یک صفحه ی login و غیره می باشد.
    • صفحه ی ایجاد شده توسط الگو همچنین دارای گزینه ای می باشد که با استفاده از یک سایت خارجی مانند فیس بوک، گوگل یا تویتر به یوزرها اجازه ورود می دهد.
    • اگر می خواهید به سایت موجود امنیت اضافه کنید، یا اگر نمی خواهید از الگوی Starter Site استفاده کنید، می توانید صفحه ی ثبت نام یا صفحه ی ورود خود را ایجاد کنید.
    این مقاله روی اولین گزینه تمرکز می کند – چگونگی افزودن امنیت با استفاده از Starter Site. این مقاله اطلاعات پایه ای در مورد چگونگی اجرای امنیت خود شما ارائه می دهد و سپس لینک هایی را برای اطلاعات بیشتر در مورد چگونگی انجام آن ارائه می دهد. اطلاعاتی در مورد چگونگی فعال کردن ورودی های خارجی نیز وجود دارد که با جزئیات بیشتر در یک مقاله ی مجزا توضیح داده خواهد شد.

    ایجاد امنیت وب سایت با استفاده از الگوی Starter Site:

    • یک پایگاه داده که برای ذخیره ی نام ها و پسووردهای اعضای شما استفاده می شود.
    • یک صفحه ی ثبت نام که در آن یوزرهای ناشناس می توانند ثبت نام کنند.
    • یک صفحه ی login و logout.
    • یک صفحه ی ریکاوری و تغییر مجدد پسوورد.
    پروسه ی زیر چگونگی ایجاد سایت و تنظیم آن را توضیح می دهد:

    • WebMatrix را آغاز کرده و در صفحه ی Quick Start عبارت Site From Template را انتخاب کنید.
    • الگوی Starter Site را انتخاب کرده و سپس روی OK کلیک کنید.
    • در پین سمت چپ روی انتخابگر File کلیک کنید.
    • در فولدر روت از وب سایت خود فایل _AppStart.cshtml را باز کنید که یک فایل خاص می باشد که حاوی تنظیمات جهانی است. این فایل دارای عباراتی است که با استفاده از کاراکترهای // بیان می شوند.
     
  3. مدیر بازنشسته☕

    تاریخ عضویت:
    ‏15/8/17
    ارسال ها:
    5,336
    تشکر شده:
    42,669
    امتیاز دستاورد:
    113
    کد:
    //WebMail.SmtpServer = "mailserver.example.com";
    //WebMail.EnableSsl = true;
    //WebMail.UserName = "username@example.com";
    //WebMail.Password = "your-password";
    //WebMail.From = "your-name-here@example.com";
     
  4. مدیر بازنشسته☕

    تاریخ عضویت:
    ‏15/8/17
    ارسال ها:
    5,336
    تشکر شده:
    42,669
    امتیاز دستاورد:
    113
    این عبارت ها کمک کننده ی WebMail را تنظیم می کند که برای ارسال ایمیل استفاده می شود. سیستم عضویت برای ارسال پیام های تایید، زمانیکه یوزرها ثبت نام می کنند یا می خواهند پسوورد خود را تغییر دهند، می تواند از ایمیل استفاده کند. (به عنوان مثال پس از اینکه یوزرها ثبت نام کردند یک ایمیل دریافت می کنند که حاوی یک لینک می باشد که می توانند برای اتمام پروسه ی ثبت نام روی آن کلیک کنند.). ارسال ایمیل نیازمند به یک سرور SMTP می باشد. شما تنظیمات ایمیل را در فایل مرکزی _AppStart.cshtml ذخیره می کنید، طوریکه دیگر لازم نیست به طور مکرر آنها را در صفحه ای که می تواند ایمیل ارسال کند، کد گذاری کنید. لازم نیست برای نصب پایگاه داده ی ثبت نام، تنظیمات SMTP را به شکل خاصی قرار دهید. اگر می خواهید یوزرها را از طریق نام مستعار ایمیل آنها ارزیابی کرده و به آنها اجازه دهید پسوورد فراموش شده ی خود را بازیابی کنند، فقط به تنظیمات SMTP احتیاج دارید.)

    عبارت های بدون کامنت به وسیله حذف // از مقابل هرکدام از آنها.
     
  5. مدیر بازنشسته☕

    تاریخ عضویت:
    ‏15/8/17
    ارسال ها:
    5,336
    تشکر شده:
    42,669
    امتیاز دستاورد:
    113
    اگر نمی خواهید تاییدی کنید، می توانید از این مرحله و مرحله ی بعد رد شوید. اگر مقادیر SMTP تنظیم نشده باشند، اکانت جدید فورا و بدون ایمیل تاییدیه، در دسترس خواهد بود.

    تنظیمات مربوط به ایمیل زیر را در کد تغییر دهید.

    • WebMail.SmtpServer را با نام سرور SMTP که به آن دسترسی دارید، تنظیم کنید.
    • WebMail.EnableSsl را با تنظیم true رها کنید. این تنظیمات استوارنامه هایی را که به سرور SMTP ارسال می شوند، با به رمز در آوردن آنها، ایمن می سازند.
    • WebMail.UserName را برای اکانت سرور SMTP خود با نام یوزر تنظیم کنید.
    • WebMail.Password را برای کانت سرور SMTP با پسوورد تنظیم کنید.
    • WebMail.From را با ایمیل خود تنظیم کنید، که آدرس ایمیلی می باشد که پیغام از آن ارسال می شود.
    _AppStart.cshtml را ذخیره کرده و ببندید.

    صفحه ی Default.cshtml را در یک مرورگر اجرا کنید.
     
  6. مدیر بازنشسته☕

    تاریخ عضویت:
    ‏15/8/17
    ارسال ها:
    5,336
    تشکر شده:
    42,669
    امتیاز دستاورد:
    113
    توجه:

    اگر خطایی مشاهده کردید که می گوید یک ویژگی باید نمونه ای از ExtendedMembershipProvider باشد، سایت ممکن است برای استفاده از سیستم عضویت صفحات وب ASP.Net تنظیم نشده باشد. اگر ارائه کننده ی سرور hosting متفاوت از سرور داخلی شما تنظیم شده باشد، در این صورت گاهی این خطا ظاهر می شود. برای برطرف کردن این مسئله عنصر زیر را به فایل مربوط به سایت Web.config اضافه کنید.
     
  7. مدیر بازنشسته☕

    تاریخ عضویت:
    ‏15/8/17
    ارسال ها:
    5,336
    تشکر شده:
    42,669
    امتیاز دستاورد:
    113
    کد:
    < appsettings >
    < add key="enableSimpleMembership" value="true" / >
    < /appsettings >
     
  8. مدیر بازنشسته☕

    تاریخ عضویت:
    ‏15/8/17
    ارسال ها:
    5,336
    تشکر شده:
    42,669
    امتیاز دستاورد:
    113
    این عنصر را به عنوان زیرمجموعه ای از عنصر< configuration > و به عنوان یک همگن برای عنصر < system.web > اضافه کنید.

    یک یوزرنیم و پسوورد وارد کرده و سپس روی Register کلیک کنید.

    زمانی که شما وب سایت را از الگوی Starter Site ایجاد کرده اید، یک پایگاه داده به نام StarterSite.sdf در فولدر سایت App_Data ایجاد می شود. طی ثبت نام، اطلاعات یوزر شما به پایگاه داده افزوده می شود. اگر شما مقادیر SMTP را تنظیم کنید، یک پیام به آدرس ایمیلی که استفاده کرده اید، ارسال می شود، بنابراین می توانید ثبت نام را به اتمام برسانید.

    به برنامه ی ایمیل خود رفته و پیغام را پیدا کنید که محتوی کد تاییدیه ی شما و یک هایپرلینک به سایت خواهد بود.

    روی هایپرلینک کلیک کرده تا اکانت خود را فعال سازید. تایید هایپرلینک نیز یک صفحه ی تایید ثبت نام باز می کند.

    روی لینک Login کلیک کرده و سپس با استفاده از اکانتی که ثبت نام کرده بودید وارد سیستم شوید. پس از ورود به سیستم، لینک Logout جایگزین لینک های Login و Register خواهد شد. نام ورودی شما به عنوان یک لینک نمایش داده می شود ( این لینک به شما اجازه ی ورود به صفحه ای را می دهد که می توانید در آن پسوورد خود را تغییر دهید.)
     
  9. مدیر بازنشسته☕

    تاریخ عضویت:
    ‏15/8/17
    ارسال ها:
    5,336
    تشکر شده:
    42,669
    امتیاز دستاورد:
    113
    توجه:

    به طور پیش فرض صفحات وب ASP.Net استوارنامه هایی را به شکل یک متن واضح و خوانا ارسال می کنند. سایت محصول باید از HTTP امن (https:// که با عنوان secure sockets layer یا SSL شناخته می شود) استفاده کند تا اطلاعات هوشمند را که با سرور مبادله می شوند، کدگذاری کند. شما می توانید پیغام های ایمیل را طوری تنظیم کنید که لزوما با استفاده از SSL با تنظیمات WebMail.EnableSsl=true ، مانند مثال قبل ارسال شوند.
     
  10. مدیر بازنشسته☕

    تاریخ عضویت:
    ‏15/8/17
    ارسال ها:
    5,336
    تشکر شده:
    42,669
    امتیاز دستاورد:
    113
    عملکرد عضویت های اضافه در سایت:
    سایت شما شامل عملکردهای دیگری می شود که به یوزر اجازه می دهد تا اکانت های خود را مدیریت کنند. یوزرها می توانند کارهای زیر را انجام دهند:

    • تغییر پسوورد خود. پس از ورود به سیستم می توانند روی نام کاربری که یک لینک می باشد، کلیک کنند. این امر آنها را به صفحه ای می برد که می توانند در آن پسوورد جدیدی ایجاد کنند (Account/ChangePassword.cshtml).
    • بازیابی یک پسوورد فراموش شده: در صفحه ی ورود به سیستم یک لینک وجود دارد (Did you forget your password?) که یوزر را به صفحه ای می برد (Account/ForgotPassword.cshtml) که می تواند در آن یک آدرس ایمیل وارد کند. سایت برای یوزر یک پیام ارسال می کند که دارای یک لینک می باشد که می تواند برای تنظیم یک پسوورد جدید روی آن کلیک کند (Account/PasswordReset.cshtml).
    همچنین می توانید به یوزر اجازه دهید از طریق یک سایت خارجی وارد سیستم شود، همانطورکه بعدا توضیح داده می شود.
     
    آخرین ویرایش: ‏8/2/19