تبلیغات :
ماهان سرور
آکوستیک ، فوم شانه تخم مرغی ، پنل صداگیر ، یونولیت
دستگاه جوجه کشی حرفه ای
فروش آنلاین لباس کودک
خرید فالوور ایرانی
خرید فالوور اینستاگرام
خرید ممبر تلگرام

[ + افزودن آگهی متنی جدید ]




صفحه 2 از 3 اولاول 123 آخرآخر
نمايش نتايج 11 به 20 از 22

نام تاپيک: چگونه کامپیوتر خود را برای جلوگیری از حملات ایمن کنیم ...

  1. #11
    Banned
    تاريخ عضويت
    Feb 2007
    پست ها
    1,049

    پيش فرض

    دلتا جان تشکر بابت مطلبت ...

    اما 2 نکته رو خدمتت عرض میکنم امیدوارم که بپذیرید ...

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


    ممنون و تشکرات

  2. #12
    پروفشنال delta-pt's Avatar
    تاريخ عضويت
    Aug 2007
    پست ها
    541

    9 برای

    سلام برای اینکه عزیزان بتونن مباحث هک و امنیت شبکه رو یاد بگیرن باید یه نمه از پروتوکولهای tcp/ip بدونن درسته؟

  3. #13
    Banned
    تاريخ عضويت
    Feb 2007
    پست ها
    1,049

    پيش فرض

    سلام برای اینکه عزیزان بتونن مباحث هک و امنیت شبکه رو یاد بگیرن باید یه نمه از پروتوکولهای tcp/ip بدونن درسته؟
    کاملا درسته ...

    اما میخوایم بحث ها تکراری نباشه و مفید واقع شه ...
    کد:
    برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنید
    هر چند تو این تاپیک مطرح کردنش مشکلی نداره ... اما شما که شروع کردین باید پشت بندش در مورد نفوذ به هر کدوم از لایه ها و نحوه نفوذ به اونها رو رو هم

    به قول خودتون \:

    یه نمه توضیح بدین دیگه

  4. #14
    پروفشنال delta-pt's Avatar
    تاريخ عضويت
    Aug 2007
    پست ها
    541

    6 عزیز من این تاپیک که مال امنیت شبکه است

    عزیز من این تاپیک که مال امنیت شبکه است
    ولی من یه مقاله مینویسم و توی یه تاپیک دیگه میزارم در مورد نفوذ به لایه ها ی tcp/ip

  5. #15
    Banned
    تاريخ عضويت
    Feb 2007
    پست ها
    1,049

    پيش فرض

    عزیز من این تاپیک که مال امنیت شبکه است
    ولی من یه مقاله مینویسم و توی یه تاپیک دیگه میزارم در مورد نفوذ به لایه ها ی tcp/ip
    بسیار خوب .. ما منتظریم

  6. #16
    پروفشنال delta-pt's Avatar
    تاريخ عضويت
    Aug 2007
    پست ها
    541

    5 جواب number 1

    جواب نامه شما گفتم در تاپیک اعلام کنم که همه استفاده کنند
    خوب هرکسی که یه همچین شبکه ای داشته باشه حتمآ یه هزینه ی خیلی بالایی متحمل شده تا این شبکه رو راه اندازی کنه70 عدد کامپیوتر و 3 عدد سرور یه چیزی حدود 511 میلیون تومان پوله خوب یه همچین کسی اصلآ دوست نداره که با یه حمله ی کوچولو شبکه اش فنا بشه به همین جهت اول از همه این شبکه رو تو یه مساحت بزرگ راه اندازی میکنه مثل یه محیط سر پوشیده ی 300 متری حالا با طبقه ی بالا و بقیه ی چیزا در مرحله بعد این فرد باید ببینه با این همه کامپیوتر چیکار کنه اگه من بودم مایکروسافت 2 را راه اندازی میکردم خوب حالا بگیم این فرد یه موئسسه مثل تبیان را ه اندازی کنه اول باید کارمنداش رو استخدام کنه در زمینه ی استخدام کارمند باید سر تیزهوشی اونا تآکید کنه چون با یه سوتی از کارمنداش کل شبکه به خطر میفته چون یک هکر واقعی برای حمله مثل این بچه کوچولو ها (بلا نثبت شما)عمل نمیکنه و نمیاد الکی پلکی حمله کنه وآخر سری هم گیر بیفته و 2 سال آب خنک بخوره یک هکر واقعی اول از هم میاد که اطلاعات جمع آوری کنه تا هم گیر نیفته و هم حمله اش با موفقیت تموم بشه برای اینکار دست به هرکاری میزنه مثل شیوه های
    روان شنا ختی و تعاملات اجتماعی :
    ....................................
    مثلآ زنگ میزنه به یک از کارمندای شبکه شما میپرسه از چه مسیریابی استفاده میکنید یا سیستم عامل شبکه تو ن چی هست یا زنگ میزنه به پشتیبانی شبکه ی شما و میگه من یکی از مدیران شبکه ی شما هستم امشب پورت 21 را باز بزارید و فایروال را نیز غیر فعال کنید آیا کارمندای شما باید حرف اونا رو قبول کنند از این رو باید روی مخ کارمنداتون کار کنید
    ....................................
    یک دیگه از حقه هاشون اینه که آشغال گردی میکنند مثلآ میان در ساختمون شبکه شما و آشغالهای کارمندهای شما رو از جمله کاغذ میگردند همون بلایی که دو سال پیش سر مایکروسوفت آوردند و از اون به بعد مایکروسوفت اصلآ اشغالا شو بیرون نمیندازه و همون جا میسوزونن
    .................................
    یک دیگه از راه دزدی درست میان توی ساختمون موئسسه شما شب پشت کامپیوتر میشینن و کل اطلاعاتتون رو میریزن توی فلش و میبرنا از این رو شما باید از لحاظ فیزیکی هم شبکه رو امن کنید
    ................................
    و خیلی حقه های دیگه مثل جستجو در وب به دنبال اطلاعات شما مثل whois
    ...............................
    هیچگونه خط مستقیمی از مودم به کارمندا ندید
    ...............................
    کسی که این شبکه رو دارد باید تعدادی متخصص امنیت شبکه استخدام کند بعد از این باید کلآ کل شبکه اش رو ببنده پورتهای بیخود کل شبکه اش روتست نفوذپذیری کنه تست نفوذپذیری حملات dos,ddos,rootkit, exploite , و خیلی حملات دیگه
    توسیه ی من اینه که اول از همه شبکتون رو در برابر حملات dos,ddos ایمن کنید چون هر کس که از این طریق به شما حمله کنه حتما قصد نابود کردن شبکه شما رو داره
    مرحله ی بعد از تست نفوذپذیری ها نصب نرم افزار ها ی مطمئن است برای ویروس کشی آنتی اسپم و فایروال و...
    ویروس کشی که به نظر من نرم افزار کسپرسکی بهترین است آنتی اسپم هم مک کافی و فایروال هم یه فایروال سخت افزاری و یه نرم افزاری مثل زون آلارم
    مرحله ی بعد امنیت برنامه های تحت وب هست این مقاله که درمورد امنیت برنامه های وب هست توسط من و تیم امنیتی شبگرد نوشته شده

    بخش اول

    هر برنامه کامپيوتری که برای اجراء در محيط شبکه، طراحی و پياده سازی می گردد ، می بايست توجه خاصی به مقوله امنيت داشته باشد .برنامه های وب از زيرساخت شبکه ( اينترانت ، اينترانت ) برای ارائه خدمات خود به کاربران استفاده نموده و لازم است نحوه دستيابی کاربران به اين نوع از برنامه ها ، کنترل و با توجه به سياست های موجود ، امکان دستيابی فراهم گردد .در ابتدا می بايست کاربران شناسائی و پس از تائيد هويت آنان ، امکان دستيابی به برنامه با توجه به مجوزهای تعريف شده ، فراهم گردد. ASP.NET ( پلات فرم مايکروسافت برای طراحی و پياده سازی برنامه های وب ) ، از سه روش عمده به منظور شناسائی کاربران و اعطای مجوزهای لازم در جهت دستيابی و استفاده از يک برنامه وب ، استفاده می نمايد :
    • <LI dir=ltr>
      Windows Authentication
      <LI dir=ltr>
      Forms Authentication
    • Passport Authentication
    در مجموعه مقالاتی که ارائه خواهد شد به بررسی هر يک از روش های فوق در جهت پياده سازی امنيت در برنامه های وب خواهيم پرداخت . در بخش اول اين مقاله ، به بررسی نحوه برخورد ASP.NET با کاربران ناشناس ( Anonymous ) ، روش های متفاوت شناسائی کاربران و پارامترهای لازم در خصوص انتخاب يک استراتژی به منظور شناسائی کاربران با توجه به نوع برنامه ها ، خواهيم پرداخت .
    شناسائی و تائيد کاربران
    Authentication ، فرآيندی است که بر اساس آن کاربران شناسائی می گردند . Authorization ، فرآيند اعطای دستيابی به کاربران با توجه به هويت آنان می باشد . با تلفيق Authentication و Authorization، امکان ايمن سازی برنامه های وب در مقابل افراد مزاحم و غير مجاز ، فراهم می گردد .
    دستيابی از طريق کاربران ناشناس ( Anonymous )
    اغلب سايت های وب از روش دستيابی "Anonymous" ، استفاده می نمايند . در چنين مواردی ، اطلاعات موجود بر روی سايت جنبه عمومی داشته و امکان دستيابی تمامی کاربران به اطلاعات وجود خواهد داشت . اين نوع سايت ها ، ضرورتی به بررسی مجاز بودن کاربران برای استفاده از منابع موجود ، نخواهند داشت . برنامه های وب ASP.NET ، امکان دستيابی Anonymous را به منابع موجود بر روی سرويس دهنده توسط Impersonation ارائه می نمايند . Impersonation ، فرآيند نسبت دهی يک Account به يک کاربر ناشناس است . Account دستيابی Anonymous بصورت پيش فرض ، IUSER_computername ، می باشد. با استفاده از Account فوق ، امکان کنترل کاربران ناشناس که به منابع موجود بر سرويس دهنده دستيابی دارند ، وجود خواهد داشت . به منظور مشاهده و تغيير مجوزهای دستيابی در نظر گرفته شده برای Account فوق از برنامه Computer Management استفاده می گردد :
    • <LI dir=rtl>ورود به شبکه ( Logon ) به عنوان مديريت شبکه
      <LI dir=rtl>اجرای Computer Management ( از طريق : Start | Programs | Administrator Tools )
      <LI dir=rtl>انتخاب فولدر Users به منظور نمايش ليست کاربران
    • مشاهده گروههائی که Account فوق به عنوان عضوی از آنان می باشد( کليک بر روی Member of ) . کاربران Anonymous ، بصورت پيش فرض ، عضوی از گروه Guests بوده که دارای مجوزهای اندکی می باشد. ASP.NET از ASP.NET Account ( با توجه به تنظيمات پيش فرض) ، به منظور اجرای برنامه وب استفاده می نمايد . بدين ترتيب ، در صورتيکه برنامه ای سعی در انجام عملياتی نمايد که در ليست مجوزهای ASP.NET Account وجود نداشته باشد ، يک مورد خاص امنيتی بوجود آمده و امکان دستيابی آن تائيد نخواهد شد.
    به منظور اعمال محدوديت در دستيابی کاربران ناشناس می توان از تنظيمات مربوط به مجوزهای فايل ويندوز استفاده نمود . برای ايمن سازی ، سرويس دهنده می بايست دارای سيستم فايل NTFS باشد . سيستم های فايل FAT و يا FAT32 ، ايمن سازی در سطح فايل را ارائه نمی نمايند .
    دستيابی از طريق کاربران تائيد شده
    دستيابی Anonymous ، گزينه ای مناسب برای دستيابی به اطلاعات عمومی و عام است . در صورتيکه برنامه های وب شامل اطلاعاتی خاص و خصوصی باشند ، می بايست در ابتدا کاربران شناسائی و در ادامه با توجه به مجوزهای تعريف شده ، امکان دستيابی فراهم گردد. در برنامه های وب ASP.NET از سه روش عمده به منظور Authentication و Authorization کاربران استفاده می گردد :
    • <LI dir=rtl>Windows integrated authentication : در روش فوق ، شناسائی و تائيد کاربران بر اساس ليست کاربران تعريف شده بر روی سرويس دهنده انجام خواهد شد. در ادامه با توجه به مجوزها و امتيازات نسبت داده شده به هر Account ، امکان دستيابی و يا عدم دستيابی به منابع موجود بر روی سرويس دهنده ، فراهم می گردد.
      <LI dir=rtl>Forms authentication : در روش فوق ، کاربران به يک فرم وب Logon ، هدايت می گردند . در ادامه ، اطلاعات مربوط به نام و رمز عبور آنان اخذ و فرآيند شناسائی و تائيد بر اساس يک لسيت کاربران و يا از طريق يک بانک اطلاعاتی که برنامه حمايت می نمايد ، انجام خواهد شد.
    • Passport authentication : در روش فوق ، کاربران جديد به يک سايت که توسط مايکروسافت ميزبان شده است ، هدايت می گردند .پس از ريجستر شدن کاربران ، امکان دستيابی آنان به چندين سايت ، فراهم خواهد شد( تمرکز در شناسائی کاربران و استفاده از سايت های متعدد با توجه به تائيد بعمل آمده ) .
    هر يک از رويکردهای فوق ، به همراه روش دستيابی Anonymous ، دارای مزايای مختص به خود بوده و برای نوع خاصی از برنامه های وب ، مناسب می باشند :
    • <LI dir=rtl>نوع برنامه : برنامه وب عمومی اينترنت
      روش تائيد کاربران : Anonymous
      توضيحات : روش عمومی دستيابی برای اغلب سايت های وب ، می باشد. در اين روش ، ضرورتی به Logon وجود نداشته و با استفاده از مجوزهای سيستم فايل NTFS ، می توان ايمن سازی منابعی را که قصد اعمال محدوديت در رابطه با دستيابی به آنان وجود دارد را انجام داد .
      <LI dir=rtl>نوع برنامه : برنامه وب اينترانت
      روش تائيد کاربران : Windows integrated
      توضيحات : در روش فوق ، سيستم معتبر سازی ويندوز ، کاربران شبکه را از طريق کنترل کننده Domain ، تائيد می نمايد. امکان دستيابی به منابع برنامه های وب بر اساس مجوزهای تعريف شده بر روی سرويس دهنده ، برای هر يک از کاربران فراهم می گردد .
      <LI dir=rtl>نوع برنامه : برنامه های وب تجاری
      روش تائيد کاربران : Forms
      توضيحات : برنامه هائی که نيازمند دريافت اطلاعات مالی می باشند ، می بايست از روش فوق به منظور اخذ و ذخيره سازی اطلاعات ، استفاده نمايند .
    • نوع برنامه : برنامه های متعدد تجاری
      روش تائيد کاربران : Passport
      توضيحات : در روش فوق ، کاربران يک مرتبه Sign in نموده ( از طريق يک مرکز تائيد کاربران ) و امکان دستيابی و استفاده آنان از تمامی برنامه هائی که از Passport SDK استفاده می نمايند ، وجود خواهد داشت . اطلاعات کاربران در يک Passport profile نگهداری خواهدشد ( در مقابل استفاده از يک بانک اطلاعاتی محلی ) .
    استفاده از Authentication در فايل های HTM و يا HTML
    سه روش تائيد کاربران که توسط ASP.NET ارائه شده است ، صرفا" در رابطه با فايل هائی که به عنوان بخشی از برنامه وب می باشند ، بکار گرفته می شود .فرم های وب ( فايل هائی با انشعاب aspx . ) ، ماژول ها ( فايل هائی با انشعاب asax . ) ، نمونه هائی در اين زمينه می باشند. فرآيند فوق ، صفحات HTML ( فايل هائی با انشعاب HTM و يا HTML ) را شامل نمی گردد و مسئوليت آن بصورت پيش فرض به IIS ( در مقابل ASP.NET ) واگذار شده است. در صورتيکه فصد تائيد کاربرانی ( استفاده از يکی از روش های Windows,Forms و Passport ) را داشته باشيم که به صفحات HTML از طريق برنامه وب دستيابی دارند ، می بايست اين نوع فايل ها به ASP.NET executable ، مپ گردند .به منظور مپ نمودن فايل های html به ASP.NET executable ، پس از اجرای IIS مراحل زير را دنبال می نمائيم :
    • انتخاب فولدر شامل برنامه وب و Properties از طريق Action Menu . در ادامه برنامه IIS ، جعبه محاوره ای Properties را نمايش خواهد داد .
    • بر روی Directory Tab کليک نموده و در ادامه گزينه Configuration را انتخاب می نمائيم . IIS در ادامه جعبه محاوره ای Application Configuration را نمايش خواهد داد :
    • بر روی دکمه Add کليک نموده و در ادامه IIS جعبه محاوره ای Add/Edit Application Extension Mapping را نمايش خواهد داد .
    • <LI dir=rtl>بر دکمه Browse کليک نموده و فايل aspnet_isapi.dll را انتخاب می نمائيم .فايل فوق در دايرکتوری Windows Microsoft .Net Framework قرار داشته و مسير آن مشابه زير است :
      Path for aspnet_isapi.dll
      C:\windows\Microsoft.NET\Framework\versionnumber\a spnet_isapi.dll
      <LI dir=rtl>htm. را در فيلد File Extension تايپ می نمائيم .
    • مراحل فوق ، برای فايل های با انشعاب html ، تکرار می گردد.
    Last edited by delta-pt; 08-08-2007 at 20:34.

  7. #17
    پروفشنال delta-pt's Avatar
    تاريخ عضويت
    Aug 2007
    پست ها
    541

    5 امنيت برنامه های وب ( بخش دوم )

    امنيت برنامه های وب ( بخش دوم )
    در بخش اول اين مقاله ، به نحوه برخورد ASP.NET با کاربران ناشناس ( Anonymous ) ، روش های متفاوت شناسائی کاربران و پارامترهای لازم در خصوص انتخاب يک استراتژی به منظور شناسائی کاربران با توجه به نوع برنامه ها ، اشاره گرديد.در بخش دوم اين مقاله به بررسی Windows Authentication خواهيم پرداخت .
    همانگونه که در بخش اول اين مقاله اشاره گرديد ، برنامه های وب ASP.NET از سه روش عمده به منظور تائيد کاربران استفاده می نمايند :
    • <LI dir=ltr>
      Windows Authentication
      <LI dir=ltr>
      Forms Authentication
    • Passport Authentication
    در Windows Authentication ، برنامه های وب مسئوليتی را در ارتباط با تائيد کاربران برعهده نگرفته و اين وظيفه تماما" به سيستم عامل ويندوز ، واگذار می گردد. فرآيند تائيد کاربران در روش فوق، بصورت زير است :
    • <LI dir=rtl>کاربر درخواستی مبنی بر دريافت يک صفحه وب ايمن را از برنامه وب ، می نمايد .
      <LI dir=rtl>پس از دريافت درخواست توسط سرويس دهنده وب ، IIS عمليات بررسی صلاحيت کاربر را انجام خواهد داد . در اين راستا ، اطلاعات ارائه شده توسط کاربر در زمان logon ( نام و رمز عبور) ، با اطلاعات موجود بر روی سرويس دهنده وب و يا Domain ، مقايسه می گردد .
      <LI dir=rtl>در صورتيکه پس از بررسی مدارک ارائه شده توسط کاربر ( نام و رمز عبور ) ، وی به عنوان کاربر غير مجاز تشخيص داده شود ، درخواست وی ناديده گرفته خواهد شد .
      <LI dir=rtl>کامپيوتر سرويس گيرنده ، يک جعبه محاوره ای Logon را توليد و از کاربر درخواست درج اطلاعات مورد نياز ( نام و رمز عبور ) ، می گردد . پس از درج اطلاعات درخواستی توسط کاربر و ارسال آنان برای سرويس دهنده ، مجددا" IIS بررسی لازم در خصوص صحت آنان را انجام خواهد داد . در صورتيکه صحت اطلاعات ارسالی کاربر ( نام و رمز عبور ) تائيد گردد ، IIS درخواست اوليه کاربر را به سمت برنامه وب هدايت می نمايد .
    • در آخرين مرحله و پس از بررسی و تائيد صلاحيت کاربر ، صفحه وب درخواستی برای کاربر ارسال می گردد .
    مهمترين مزيت روش Windows Authentication ، استفاده مشترک از يک مدل امنيتی به منظور دستيابی به منابع موجود در شبکه و برنامه های وب است . پس از تعريف و اعطای مجوزهای لازم به کاربر ، امکان دستيابی وی به منابع موجود در شبکه و برنامه های وب بر اساس يک سيستم امنيتی مشابه و يکسان ، فراهم می گردد .
    در زمان ايجاد يک پروژه جديد برنامه وب توسط ويژوال استوديو دات نت ، از روش Windows Authentication بصورت پيش فرض به منظور تائيد کاربران استفاده می گردد .پس از ايجاد يک پروژه جديد برنامه وب در ويژوال استوديو دات نت ، فايل Web.Config بصورت اتوماتيک ايجاد می گردد . ( يک فايل XML که اطلاعات متفاوتی را در ارتباط با پيکربندی رنامه وب در خود ذخيره می نمايد ) . محتوی پيش فرض اين فايل بصورت زير است ( صرفا" بخشی که با موضوع اين مقاله ارتباط دارد ، منعکس می گردد ) :
    Web.Config default setting

    <authentication mode="Windows" />
    <authorization>
    <allow users="*" /> <!-- تمامی کاربران -->
    </authorization>


    در بخش مربوط به عنصر authentication ، سياست تائيد کاربران برنامه های وب مخشص می گردد . برای مشخص نمودن سياست فوق از خصلت mode مربوط به عنصر authentication ، استفاده شده که می تواند يکی از مقادير : Windows , Forms ,Passport و يا None را دارا باشد . در بخش authorization ، سياست های مربوط به کاربران مجاز برنامه وب مشخص می گردد . در اين رابطه می توان ، امکان دستيابی و يا عدم دستيابی به برنامه های وب را با مشخص نمودن کاربران و يا با توجه به وظايف آنان ، فراهم نمود. ( استفاده از کاراکتر " * " ، به معنی همه کاربران بوده و کاراکتر "؟" به منزله کاربران ناشناس و غيرمجاز است) . برای آشنائی با عملکرد روش Windows Authentication ، مراحل زير را دنبال می نمائيم :
    • بخش authorization در فايل Web.Config را بصورت زير تغيير می نمائيم :
    Authorization element

    <authorization>
    <deny users="?" />
    </authorization>


    • تگ های زير را که يک جدول HTML را تعريف می نمايند ، در فرم وب شروع برنامه وب ، قرار می دهيم :
    HTML Table in Startup web form

    <TABLE id="tblUser">
    <tr>
    <TD><STRONG>آيا کاربر تائيد شده است ؟</STRONG></TD>
    <TD><Span runat="server" id="spnAuthenticated"></Span></TD>
    </tr>
    <tr>
    <TD><STRONG>نام کاربر </STRONG></TD>
    <TD><Span runat="server" id="spnUserName"></Span></TD>
    </tr>
    <tr>
    <TD><STRONG>نوع تائيد کاربر</STRONG></TD>
    <TD><Span runat="server" id="spnAuthenticationtype"></Span></TD>
    </tr>
    </TABLE>


    • به حالت Design view سوئيچ نموده و کد زير را در فايل Code Behind فرم وب شروع برنامه ، قرار می دهيم :
    Web form's code-behind file

    Private Sub Page_Load( ByVal sender As System.Object,ByVal e As System.EventArgs ) Handles Mybase.Load
    spnAuthenticated.InnerText = User.Identity.IsAuthenticated
    spnUserName .InnerText = User.Identity.Name
    spnAuthenticationType.InnerText = User.Identity.AuthenticationType
    End Sub


    • پس از اجرای پروژه بصورت محلی ، ASP.NET تائيد کاربر را بر اساس نام و رمز عبوری که برای ورود به ويندوز استفاده شده است ، انجام خواهد د اد .
    • پس از اجرای پروژه از راه دور ( مثلا" دستيابی از طريق اينترنت ) ، ASP.NET يک جعبه محاوره ای رادر مرورگر نمايش داده تا از طريق آن نام و رمز عبور کاربر دريافت گردد .
    در صورتيکه نام و رمز عبور درج شده توسط کاربر با تعاريف انجام شده در Domain شبکه ، مطابقت نمايد ، ASP.NET کاربر را تائيد و مجوز لازم به منظور استفاده از برنامه وب صادر خواهد شد . در اين رابطه ASP.NET ، يک authorization certificate را به شکل يک کوکی صادر که در حين Session کاربر ، نگهداری و از آن استفاده می گردد. Session کاربر، پس از اتمام زمان Time out و يا بستن مرورگر ، خاتمه می يابد . برنامه وب اجرای خود را متناسب با مجوزهای تعريف شده در ارتباط با Account آغاز می نمايد .
    روش Windows integrated authentication در يک شبکه مبتنی بر Domain بهتر کار خواهد کرد . شبکه هائی که از Workgroup استفاده می نمايند ( در مقابل استفاده از Domain ) دارای محدوديت های خاص خود به منظور استفاده از ويژگی های امنيتی ، می باشند. شبکه های مبتنی بر Domain ، از يک کنترل کننده Domain به منظور تائيد و معتبرسازی کاربران شبکه ، استفاده می نمايد .
    با استفاده از امکانات ارائه شده در فايل Web.Config می توان يک لايه امنيتی مضاعف را ايجاد نمود . دراين راستا ، می توان تنظيمات لازم به منظور دستيابی و يا عدم دستيابی کاربران و يا گروه های خاصی از کاربران را نيز انجام داد .
    اعمال محدوديت برای کاربران خاص ( دستيابی و يا عدم دستيابی )
    در موارديکه از روش Windows integrated authentication استفاده می گردد ، ASP.NET ، ليست تائيد موجود در فايل Web.Config را به منظور آگاهی از صلاحيت کاربران شبکه برای استفاده ازبرنامه وب ، بررسی می نمايد. کاراکترهای "*" و "؟" دارای معانی خاصی در ليست تائيد می باشند : کاراکتر "* " ، نشاندهنده تمامی کاربران و کاراکتر "؟"، نشاندهنده کاربران غير مجاز( ناشناس) می باشد . مثلا" ليست تائيد زير در Web.Config ، امکان دسـتيابی تمامی کاربران ناشناس به برنامه وب را حذف و می بايست تمامی کاربران به منظور استفاده از برنامه وب ،تائيد گردند .
    Authorization element

    <authorization>
    <deny users="?" />
    </authorization>


    به منظور اعمال محدوديت در دستيابی کاربرانی خاص ،می توان از عنصر <allow> استفاده و اسامی تمامی کاربران مجاز را با صراحت مشخص نمود (اسامی توسط ويرگول از يکديگر تفکيک می گردند) . پس از معرفی کاربران مجاز با استفاده از عنصر <allow> ، می بايست با بکارگيری عنصر <deny> ، امکان دستيابی به برنامه توسط کاربران غير مجاز، سلب می گردد .
    Authorization element

    <authorization>
    <allow users="Ali Reaz , Reza Ali " />
    <deny users="*" />
    </authorization>


    ليست مجاز فوق ، امکان دستيابی دو کاربر که اسامی آنان با صراحت مشخص شده است را به برنامه وب خواهد داد. ساير کاربران ، امکان دستيابی به برنامه وب را دارا نخواهند بود ( نقش عنصر deny در مثال فوق ) علاوه بر ليست مجاز فوق که اسامی دو کاربر را مشخص و آنان را برای استفاده از برنامه وب مجاز می نمايد ، دو کاربر فوق ، می بايست دارای Account لازم در Domain شبکه نيز باشند .
    تائيد کاربران بر اساس نوع وظيفه
    برای تائيد کاربران به منظور استفاده از يک برنامه می توان ، مجوزهای لازم را بر اساس وظيفه آنان در سازمان ، صادر و امکان دستيابی و يا عدم دستيابی را برای آنان فراهم نمود. در ويندوز NT و XP ، وظايف به اسامی مپ شده تا از اين طريق امکان شناسائی گروه های کاربران ، فراهم گردد. ويندوز، چندين گروه را بصورت اتوماتيک از قبل ايجاد می نمايد : Administrators ,Users و Guests . در اين رابطه می توان از عنصر <roles> در ليست استفاده کنندگان مجاز برنامه وب در فايل Web.Config استفاده و امکان دستيابی به يک برنامه را با توجه به وظايف کاربر ، فراهم نمود. مثلا" ليست زير، امکان دستيابی به برنامه وب را صرفا" برای کاربرانی که به عنوان Administrator به شبکه وارد می شوند ، فراهم می نمايد.
    Authorization element

    <authorization>
    <allow roles ="Administrators" />
    <deny users="*" />
    </authorization>


    پس از تائيد کاربر و صدور مجوز لازم به منظور استفاده از برنامه وب ، می توان با استفاده از خصلت Identity مربوط به شی User ، هويت کاربر ( نام و نوع وظيفه ) را از طريق برنامه شناسائی نمود.خصلت فوق، يک شی را که شامل اطلاعات مربوط به نام و وظيفه کاربراست را برمی گرداند .
    Web form's code-behind file

    Private Sub Page_Load( ByVal sender As System.Object,ByVal e As System.EventArgs ) Handles Mybase.Load
    spnAuthenticated.InnerText = User.Identity.IsAuthenticated
    spnUserName .InnerText = User.Identity.Name
    spnAuthenticationType.InnerText = User.Identity.AuthenticationType
    End Sub


    به منظور آگاهی و انجام عمليات لازم با توجه به نوع وظيفه کاربر که از برنامه وب استفاده می نمايد ، می توان از متد IsInRole شی User ، استفاده نمود .
    IsInRole method

    If User.IsInRole("Administrators") Then
    'انجام عمليات دلخواه
    End If


    استفاده از تنظيمات IIS به همراه Windows Authentication
    تنظيمات Authorization در فايل Web.Config با تنظيمات انجام شده در IIS با يکديگر Overlap می شوند . در صورتيکه Authorization هم در فايل Web.Config و هم توسط IIS تنظيم شده باشد ، در ابتدا تنظيمات IIS بررسی و در ادامه تنظيمات موجود در فايل Web.Config ، مورد توجه قرار خواهند گرفت. به منظور مشاهده تنظيمات authorization در IIS مراحل زير را دنبال می نمائيم :
    • <LI dir=rtl>در IIS بر روی فولدر برنامه وب کليک سمت راست نموده و در ادامه گزينه Properties را انتخاب می نمائيم . برنامه IIS در ادامه جعبه محاوره ای Properties مربوط به فولدر را نمايش خواهد داد .
      <LI dir=rtl>بر روی Directory Security Tab کليک و در ادامه دکمه Edit را در گروه Anonymous Access And Authentication Control کليک می نمائيم . IIS ، جعبه محاوره ای Authentication Methods را نمايش خواهد داد .
      <LI dir=rtl>اولين گروه از تنظيمات در جعبه محاوره ای ، کنترل دستيابی Anonymous را انجام می دهد ( همه کاربران ). غير فعال نمودن گزينه فوق ، معادل <"?" = deny User > در فايل Web.config است.
    • Check Box های موجود در قسمت دوم جعبه محاوره ای ، مجاز بودن برنامه به منظور استفاده از Basic و يا Digest Authentication را علاوه بر Windows Authentication ، مشخص می نمايد. روش های فوق ، ايمنی بمراتب کمتری را نسبت به Windows Integrated ارائه می نمايند .می توان چندين روش authentication را در IIS فعال نمود . در صورتيکه چندين روش فعال شده باشد ، می توان با استفاده از متد AuthenticationType مربوط به شی Identity ، از روش استفاده شده به منظور تائيد کاربر ، آگاهی يافت .
    AuthenticationType method

    Response.Write(User.Identity.AuthenticationType)


    در بخش سوم اين مقاله به بررسی روش Forms Authentication ، خواهيم پرداخت
    Last edited by delta-pt; 08-08-2007 at 20:35.

  8. #18
    پروفشنال delta-pt's Avatar
    تاريخ عضويت
    Aug 2007
    پست ها
    541

    پيش فرض

    اشتباه بود
    Last edited by delta-pt; 08-08-2007 at 20:33.

  9. #19
    پروفشنال delta-pt's Avatar
    تاريخ عضويت
    Aug 2007
    پست ها
    541

    پيش فرض

    ببخشید بخش دوم را رو اشتباه گذاشتم به جا ی بخش سوم
    در بخش سوم اين مقاله به بررسی Forms Authentication خواهيم پرداخت .
    همانگونه که دربخش اول اين مقاله اشاره گرديد ، برنامه های وب ASP.NET از سه روش عمده به منظور تائيد کاربران استفاده می نمايند :

    • <LI dir=ltr>
      Windows Authentication
      <LI dir=ltr>
      Forms Authentication
    • Passport Authentication
    در Forms Authentication ، برنامه IIS مسئوليتی را در ارتباط با تائيد کاربران برعهده نگرفته و تنظيمات امنيتی IIS در رابطه با برنامه وب ، دستيابی Anonymous می باشد . فرآيند تائيد کاربران در روش فوق، بصورت زير است :
    • زمانيکه سرويس گيرنده درخواست يک صفحه ايمن را می نمايد ، IIS کاربر را به عنوان Anonymous، تائيد و در ادامه درخواست وی را برای ASP.NET ارسال می نمايد .
    • ASP.NET ، بررسی لازم در خصوص وجود يک کوکی خاص بر روی کامپيوتر سرويس گيرنده را انجام خواهد داد .
    • در صورتيکه کوکی ، موجود نبوده و يا غيرمعتبر باشد ، ASP.NET درخواست کاربر را ناديده گرفته و برای وی يک صفحه Logon را ارسال می نمايد ( مثلا" Login.aspx ).
    • کاربر اطلاعات لازم ( نام و رمز عبور ) را در صفحه Logon.aspx ( به عنوان نمونه ) درج و در ادامه دکمه Submit موجود بر روی فرم را به منظور ارسال اطلاعات برای سرويس دهنده ، فعال می نمايد.
    • IIS ، مجددا" کاربر را به عنوان Anonymous، تائيد و درخواست وی را برای ASP.NET ارسال می نمايد .
    • ASP.NET ، تائيد کاربر را بر اساس اطلاعات ارسالی ( نام و رمز عبور ) انجام و يک کوکی را ايجاد می نمايد .
    • در نهايت ، صفحه وب ايمن درخواست شده به همراه کوکی جديد برای سرويس گيرنده ارسال می گردد. ماداميکه کوکی معتبر باشد ، کاربر قادر به درخواست و مشاهده ساير صفحات وب می باشد.

    فرآيند فوق را می توان به دو حالت متفاوت تعميم و مورد توجه قرار داد :
    • <LI dir=rtl> حالت اول : درخواست يک صفحه ايمن از سرويس دهنده ، توسط يک کاربر غيرمجاز و تائيد نشده
      مرحله اول : پس از درخواست يک سرويس گيرنده برای دستيابی به يک صفحه ايمن ، درخواست ارسالی وی در ابتدا توسط IIS بررسی و با توجه به اينکه تنظيمات IIS بصورت Anonymous پيکربندی شده تا امکان استفاده از Forms Authentication فراهم گردد ، درخواست کاربر ، مستقيما" برای ماژول ASP.NET Forms
      Authentication ارسال می گردد .
      مرحله دوم : ASP.NET ، بررسی لازم در خصوص وجود ( داشتن ) يک کوکی
      Authentication را انجام خواهد داد . با توجه به اينکه کاربر اولين مرتبه است که درخواست اطلاعاتی را نموده و دارای يک کوکی نمی باشد ، سرويس گيرنده به صفحه Logon ، هدايت می گردد .
      مرحله سوم : کاربراطلاعات ضروری ( نام و رمز عبور ) خود را در صفحه Logon درج و پس ازارسال آنان ،فرآيند بررسی اطلاعات ارسالی آغاز می گردد. در يک برنامه بزرگ ، بررسی اطلاعات کاربر از طريق يک بانک اطلاعاتی شامل مشخصات کاربران انجام می شود .
      مرحله چهارم : در صورتيکه اطلاعات ارسالی کاربر ( نام و رمز عبور ) ، پس از بررسی توسط برنامه وب ، معتبر شناخته نگردند ، مجوز دستيابی برای کاربر صادر نشده و امکان دستيابی وی سلب می گردد .
      مرحله پنجم : در صورتيکه پس از بررسی اطلاعات ارسالی، اعتبار وصحت آنان تائيد گردد ، يک کوکی تائيد ايجاد و در ادامه به کاربر مجوز لازم به منظور دستيابی به صفحه ، اعطاء می گردد .(هدايت کاربر به صفحه درخواست اوليه ) .
    • حالت دوم : درخواست يک صفحه ايمن از سرويس دهنده ، توسط يک کاربر مجاز و تائيد شده
      مرحله اول : پس از درخواست يک صفحه ايمن توسط سرويس گيرنده ، کوکی
      Authentication بهمراه درخواست وی برای سرويس دهنده ، ارسال می گردد.
      مرحله دوم :درخواست ارسالی توسط سرويس گيرنده در ابتدا توسط IIS دريافت و با توجه به تنظيمات انجام شده ( دسيتابی Anonymous ) ، درخواست وی مستقيما" برای ASP.NET Forms
      Authentication ارسال می گردد .
      مرحله سوم : ماژول ASP.NET Forms
      Authentication ، بررسی لازم در خصوص کوکی را انجام و در صورتيکه کوکی معتبر باشد ، سرويس گيرنده تائيد و امکان دستيابی و مشاهده صفحه وب درخواستی برای وی ، فراهم می گردد .
    در روش Forms Authentication ، بصورت اتوماتيک يک فرم وب طراحی شده به منظور اخذ اطلاعات مربوط به نام و رمز عبور کاربران ، نمايش داده می شود . کد مرتبط با فرم وب ، عمليات تائيد و معتبرسازی کاربر را بر اساس ليست ذخيره شده در فايل Web.Config برنامه و يا از طريق يک بانک اطلاعاتی جداگانه ، انجام می دهد. مزيت مهم Forms Authentication ، عدم ضرورت عضويت کاربران در Domain شبکه به منظور دستيابی به برنامه وب ، می باشد .
    فعال نمودن Forms Authenticationبه منظور استفاده از روش فوق ، می بايست مراحل زير را دنبال نمود :
    • <LI dir=rtl>مقداردهی Authentication mode در فايل Web.config به Forms
      <LI dir=rtl>ايجاد يک فرم وب به منظور اخذ اطلاعات کاربران ( Logon Page )
      <LI dir=rtl>ايجاد يک فايل و يا بانک اطلاعاتی به منظور ذخيره نام و رمز عبور کاربران
      <LI dir=rtl>نوشتن کد لازم به منظور افزودن کاربر جديد به فايل و يا بانک اطلاعاتی کاربران
    • نوشتن کد لازم به منظور تائيد کاربران با استناد به فايل و يا بانک اطلاعاتی کاربران
    Forms Authentication ، از کلاس های موجود در namespace با نام System.Web.Security استفاده می نمايد . به منظور استفاده از کلاس های فوق، می بايست در ويژوال بيسک دات نت از عبارت Imports و در ويژوال سی شارپ از Using استفاده گردد ( در ابتدای هر ماژول که عمليات تائيد را انجام خواهد داد : Imports System.Web.Security ) .
    مقداردهی Authentication mode
    نوع تائيد کاربران در يک برنامه وب ، می بايست با استفاده از عنصر <authentication> در فايل Web.config مشخص گردد. به منظور تنظيم برنامه مورد نظر خود برای استفاده از Forms Authentication ، تغييرات زير را در فايل Web.Config ، اعمال می نمائيم :

    Web.Config setting for Forms Authentication
    <authentication mode="Forms">
    <forms loginUrl = Login.aspx" >
    <credentials passwordFormat = "Clear" >
    <user name = "Ali" Password ="110" />
    <user name = "Kaveh" Password ="111" />
    </credentials>
    </forms>
    </authentication>
    کد فوق، يک نوع ساده از تائيد کاربران به روش Forms را نشان می دهد . در اين رابطه ، اغلب از تعاريف و تنظيمات پيش فرض و يک ليست کاربران مجاز، استفاده شده است. از عناصر متفاوتی در ارتباط با Forms Authentication در فايل Web.Config استفاده می گردد.هر يک از عناصر دارای خصلت های خاص خود می باشند :
    • <LI dir=rtl> عنصر <authentication>
      خصلت Mode ، با استفاده از خصلت فوق ، روش تائيد و شناسائی کاربران مشخص می گردد. با مقدار دهی خصلت فوق به Forms ، روش Forms Authentication انتخاب خواهد شد.

      <LI dir=rtl>عنصر <forms>
      خصلت name . از خصلت فوق به منظور مشخص نمودن نام کوکی که اطلاعات مربوط به نام و رمز عبور را ذخيره می نمايد ، استفاده می شود . مقدار پيش فرض ، authaspx . می باشد . در صورتيکه بيش از يک برنامه بر روی سرويس دهنده از روش Forms Authentication استفاده می نمايند ، می بايست برای هر يک از آنان نام منحصربفردی در نظر گرفته شود .
      خصلت loginUrl .از خصلت فوق به منظور مشخص نمودن نام فرم وب Login برای کاربران تائيد نشده ، استفاده می گردد . مقدار پيش فرض خصلت فوق، Default.aspx است .
      خصلت protection . با استفاده از خصلت فوق روش حفاظت کوکی Authentication که بر روی کامپيوتر سرويس گيرنده ذخيره می گردد ، مشخص خواهد شد. مقدار پيش فرض خصلت فوق ، All بوده که عمليات رمزنگاری و بررسی اعتبار و صحت داده در رابطه با آن اعمال می گردد. ساير گزينه های موجود در اين راستا ، Encryption,Validation و None می باشد .
      خصلت timeout . با استفاده از خصلت فوق ، مدت زمان نگهداری کوکی Authentication بر روی ماشين کاربر مشخص می گردد . مقدار پيش فرض 30 دقيقه است . ASP.NET ، پس از دريافت يک درخواست جديد توسط کاربر و مشروط به گذشت بيش از نصف زمان تعريف شده ، کوکی را تجديد ( Renew ) خواهد کرد .
      خصلت path . با استفاده از خصلت فوق ، مسير مورد نظر به منظور ذخيره سازی کوکی بر روی ماشين کاربر مشخص می گردد . مقدار پيش فرض ، "\" است .

      <LI dir=rtl>عنصر <credentials>
      خصلت passwordFormat ، با استفاده از خصلت فوق ، الگوريتم لازم به منظور رمزنگاری رمز عبور کاربر ، مشخص می گردد . مقدار پيش فرض ، SHA1 می باشد . ساير گزينه های موجود در اين رابطه ، MD5 و Clear ( بدون رمزنگاری ) می باشد .
    • عنصر <users>
      خصلت name ، با استفاده از خصلت فوق ، نام کاربر مشخص می گردد.
      خصلت password ، با استفاده از خصلت فوق ، رمز عبور کاربر مشخص می گردد.
    عنصر <credentilas> ، امکان ذخيره سازی ليست کاربران را در Web.Config فراهم می نمايد . رويکرد فوق ، روشی ساده به منظور تعريف کاربران مجاز يک برنامه وب می باشد . در چنين مواردی ، مديريت سيستم می تواند بسادگی و در صورت لزوم نام و رمز عبور کاربران ديگری را به ليست مجاز کاربران ، اضافه نمايد . مکانيزم فوق ، در مواردی که قصد داشته باشيم ، امکان تعريف نام و رمز عبور را در اختيار کاربران قرار دهيم ، گزينه مناسبی نبوده و می بايست از يک فايل و يا بانک اطلاعاتی به منظور ذخيره سازی اطلاعات کاربران ، استفاده گردد.
    در بخش چهارم اين مقاله با نحوه ايجاد بانک اطلاعاتی ، درج مشخصات کاربران و تائيد آنان با استناد به اطلاعات مندرج در بانک اطلاعاتی ، خواهيم پرداخت .

  10. #20
    پروفشنال delta-pt's Avatar
    تاريخ عضويت
    Aug 2007
    پست ها
    541

    پيش فرض

    همانگونه که در بخش سوم اين مقاله اشاره گرديد ، به منظور استفاده از روش Forms Authentication ، می بايست مراحل زير را دنبال نمود :
    • <LI dir=rtl>مقداردهی Authentication mode در فايل Web.config به Forms <LI dir=rtl>ايجاد يک فرم وب به منظور اخذ اطلاعات کاربران ( Logon Page ) <LI dir=rtl>ايجاد يک فايل و يا بانک اطلاعاتی به منظور ذخيره نام و رمز عبور کاربران <LI dir=rtl>نوشتن کد لازم به منظور افزودن کاربر جديد به فايل و يا بانک اطلاعاتی کاربران
    • نوشتن کد لازم به منظور تائيد کاربران با استناد به فايل و يا بانک اطلاعاتی کاربران
    در بخش سوم اين مقاله به بررسی اولين مرحله ( مقداردهی Authentication mode در فايل Web.config به Forms ) ، اشاره گرديد . در ادامه به بررسی ساير مراحل لازم به منظور استفاده از روش Forms Authentication ، خواهيم پرداخت .
    Web.Config setting for Forms Authentication
    <authentication mode="Forms">
    <forms loginUrl =" Login.aspx" >
    <credentials passwordFormat = "SHA1" >
    <user name = "Srco.ir" Password ="110" />
    <user name = "SakhaRavesh" Password ="111" />
    </credentials>
    </forms>
    </authentication>
    ايجاد يک فرم وب Logon
    به منظور تائيد کاربران بر اساس روش Forms Authentication ، نيازمند استفاده از يک فرم وب بوده که با استفاده از آن امکان Logon کاربران ، فراهم گردد. فرم وب با استفاده از عنصر <forms> در فايل Web.Config ، مشخص شده و می تواند صرفا" شامل دو Text box و يک Button و يا شامل فيلدهای اطلاعاتی بيشتری به منظور اخذ اطلاعات کاربران باشد .


    Login.aspx
    <%@ Page Language="vb" Codebehind="Login.aspx.vb" Inherits="Web1.Login" codePage="65001" %>
    <HTML>
    <HEAD>
    <title>صفحه تائيد کاربران برنامه</title>
    <meta name="vs_showGrid" content="True">
    <META http-equiv="Content-Type" content="text/html; charset=utf-8">
    </HEAD>
    <BODY bgColor="#ffffff">
    . ...
    <asp:Button id="btnSingIn" runat="server" Text="Sign in"></asp:Button>
    <asp:TextBox id="txtUserName" runat="server" Width="99px"></asp:TextBox>
    <asp:TextBox id="txtPassword" runat="server" Width="100px" TextMode="Password"></asp:TextBox>
    ...
    Login.aspx.vbImports System.Web.Security
    Public Class Login
    ...
    Private Sub btnSingIn_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnSingOn.Click

    If FormsAuthentication.Authenticate(txtUserName.Text, txtPassword.Text) Then
    FormsAuthentication.RedirectFromLoginPage(txtUserN ame.Text, True)
    Else
    txtPassword.Text = ""
    If CInt(ViewState("Tries")) >
    1 Then
    Response.Redirect("Denied.htm")
    Else
    ViewState("Tries") = CInt(ViewState("Tries")) + 1
    End If
    End If
    End Sub
    ...
    ٍEnd Class
    توضيحات
    • <LI dir=rtl>کلاس FormsAuthentication بخشی از namespace با نام System.Web.Security می باشد ، بنابراين می بايست با استفاده از Imports ( در ويژوال بيسک دات نت ) آن را به برنامه Include نمائيم ( درويژوال سی شارپ ، استفاده از Using ) .
      <LI dir=rtl>متد Authenticate مربوط به کلاس FormsAuthentication با مراجعه به ليست کاربران تعريف شده توسط عنصر<credentials> فايل Web.Config ، بررسی لازم در خصوص نام ورمز عبور کاربر را انجام می دهد.
      <LI dir=rtl>متد RedirectFromLoginPage مربوط به کلاس FormsAuthentication ، صفحه شروع برنامه وب را نمايش خواهد داد.
    • در صورتيکه نام و رمز عبور کاربر معتبر نباشد ، به کاربر دو مرتبه ديگر فرصت Logon داده خواهد شد و در صورتيکه صلاحيت کاربر تائيد نگردد ، يک پيام خطاء نمايش داده می شود. صفحه گزارش خطاء از نوع HTM می باشد.( به هيچکدام از فرم های وب موجود در برنامه ، امکان دستيابی وجود نخواهد داشت ). در صورتيکه کاربر با استفاده از روش فوق به صفحه ديگر هدايت می شود ، می بايست از محل استقرار فايل فوق در محيطی خارج از حوزه برنامه مطمئن گرديد .
    در مثال فوق ، صفحه شروع برنامه Webform1.aspx ( در بخش دوم اين مقاله ) در نظر گرفته شده است . پس از Logon موفقيت آميز، کاربر به صفحه فوق هدايت خواهد شد . زمانيکه کاربر بر روی دکمه sign in کليک می نمايد ، تائيد کاربر بر اساس نام و رمز عبور انجام و برای وی يک مجوز صادر خواهد شد. بدين ترتيب، کاربر امکان دستيابی به بخش های متفاوت برنامه را بدست می آورد .ماحصل اجرای صفحه فوق ، به صورت زير است :

    از کلاس FormsAuthentication به منظور Sign out ، و يا حذف کوکی Authentication از روی ماشين کاربر استفاده می گردد.کد زير دستيابی کاربر به برنامه را خاتمه داده و استفاده مجدد از برنامه توسط وی را ملزم به Login مجدد ، می نمايد .
    End User's access to an application
    Imports System.Web.Security
    Private Sub butSignOut_Click ( ByVal sender As System.Object , ByVal e As System.EventArgs ) Handles butSignOut.Click
    FormsAuthentication.SignOut ( )
    Response.Redirect( "UserInfo.aspx")
    End Sub
    تائيد کاربران با استفاده از يک بانک اطلاعاتی
    در بخش قبل با فرآيند تائيد کاربران با استفاده از ليست تعريف شده کاربران موجود در فايل Web.Config ، آشنا شديم . متد Authenticate مربوط به کلاس FormsAuthentication ، به منظور خواندن اطلاعات از فايل فوق بصورت اتوماتيک ، پيکربندی شده است . رويکردد فوق ، گزينه ای مناسب در مواردی است که مسئوليت تعريف اسامی و رمز عبور کاربران به مدير سيستم واگذار شده باشد . در صورتيکه قصد داشته باشيم ، امکان تعريف نام و رمز عبور را در اختيار کاربران قرار دهيم ، می بايست اطلاعات مربوط به کاربران خارج از فايل Web.config ذخيره گردد. اعمال تغييرات در فايل Web.config در زمان اجراء ، باعث Restart شدن برنامه شده و Reset تمامی متغيرهای Session و Application استفاده شده توسط برنامه می گردد. دراين رابطه می توان ، اسامی کاربران را در هر نوع فايلی ذخيره نمود . بديهی است استفاده از يک بانک اطلاعاتی، مزايای خاص خود را بدنبال خواهد داشت :

    • <LI dir=rtl>اسامی کاربران می تواند به عنوان کليد اوليه و به منظور ذخيره سازی ساير اطلاعات کاربران استفاده گردد . <LI dir=rtl>بانک های اطلاعاتی دارای کارآئی مطلوب به منظور دستيابی به اسامی و رمز عبور کاربران می باشند .
    • افزودن ، تغيير و دستيابی به رکوردهای بانک اطلاعاتی با استفاده از استانداردهای SQL انجام خواهد شد .
    زمانيکه اسامی و رمز عبور کاربران در يک فايل و يا بانک اطلاعاتی ذخيره می گردد ، می توان با استفاده از متد HashPasswordeForStoringInConfigFile مربوط به کلاس FormsAuthentication ، آنان را رمز نمود. در اين رابطه از الگوريتم های SHA1 و يا MD5 به منظور رمزنگاری داده استفاده می گردد :
    Encrypting User names and passwords
    Password = FormsAuthentication.HashPasswordForStoringInConfigFile ( Password , "SHA1")
    افزودن کاربران به يک بانک اطلاعاتی
    به منظور افزودن کاربران به يک بانک اطلاعاتی ، اطلاعات مربوط به کاربران شامل نام و رمز عبور را از طريق دو TextBox اخذ و در ادامه با ايجاد يک Event Procedure ، آنان را به بانک اطلاعاتی اضافه نموده و در نهايت پيام مناسبی که نشاندهنده درج اطلاعات کاربر در بانک اطلاعاتی سيستم می باشد ، نمايش داده خواهد شد . روتين زير با فراخوانی تابع AddUser ، نام و رمز عبور کاربر را به بانک اطلاعاتی اضافه می نمايد .

    َAdding User to a database
    Private Sub butNewUser_Click ( ByVal sender As System.Object , ByVal e As System.EventArgs ) Handles butNewUser.Click
    If AddUser(txtName.Text, txtPassword.Text) Then
    spnNote.InnerText = "کاربر جديد به بانک اطلاعاتی کاربران اضافه گرديد "
    Else
    spnNote.InnerText = "کاربری با اين مشخصات وجود دارد "
    End If"
    End If
    End Sub
    تابع AddUser ، که در روتين فوق استفاده شده است ، در ابتدا رمز عبور کاربر را رمز نموده و در ادامه با استفاده از دستور SQL INSERT ، نام و رمز عبور را در بانک اطلاعاتی ذخيره می نمايد .درصورتيکه رمز عبور در نظر گرفته شده توسط کاربر، قبلا" توسط کاربر ديگر تعريف و در بانک اطلاعاتی موجود باشد ، بلاک Exeption -handling ، خطاء را تشخيص داده و مقدار False را مبنی بر عدم افزودن اطلاعات کاربر در بانک اطلاعاتی ، برمی گرداند .
    َAddUser Function
    Private Function AddUser ( Byval UserName As String , ByVal Password As String ) As Boolean
    Dim bSuccess As Boolean
    Password = FormsAuthentication.
    HashPasswordForStoringInConfigFile ( Password , "SHA1")
    Dim oleCommand As New OleDbCommand ( "INSERT INTO Users " + "Values ( '" + UserName + '" + Password + "')",oledbUsers)
    Try
    oledbUsers.Open ( )
    If oleCommand.ExecuteNonQuery ( ) Then bSuccess = True
    oledbUsers.Close ( )
    Catch
    bSuccess =False
    oledbUsers.Close ( )
    End Try
    Return bSuccess
    End Function
    در زمان تائيد کاربران با استفاده از ليست مشخص شده کاربران در فايل Web.Config ، از متد Authenticate استفاده می گردد. در موارديکه برای تائيد کاربران از بانک اطلاعاتی استفاده می گردد ، می بايست کد لازم به منظور يافتن و مقايسه نام و رمز عبور کاربران ، نوشته گردد . روتين زير ، از تابع CheckPassword به منظور تائيد نام و رمز عبور استفاده نموده و در صورتيکه صلاحيت کاربر تائيد گردد به وی امکان دستيابی به برنامه داده خواهد شد.
    َAuthenticating Users from a database
    Private Sub butSignOn_Click ( ByVal sender As System.Object , ByVal e As System.EventArgs ) Handles butSignOn.Click
    If CheckPassword(txtName.Text, txtPassword.Text) Then
    FormsAuthentication.RedirectFromLoginPage(txtName. Text, True)
    Else
    spnNote.InnerText = "نام و يا رمز عبور اشتباه است ، مجددا سعی نمائيد"
    ViewState("tries") = ViewState("tries") + 1
    If ViewState("Tries") > 3 Then
    Response.Redirect("Denied.htm")
    End If
    End If
    End Sub
    تابع CheckPassword ، در ابتدا رمز عبور کاربر را با استفاده از الگوريتم مشخص شده ، رمز می نمايد. در ادامه ، رکورد بانک اطلاعاتی بر اساس نام جستجو و پس از يافتن رکورد مربوطه، مقايسه بين رمز عبور رمز شده در مقابل رمز عبور موجود در بانک اطلاعاتی ، انجام خواهد شد . دستيابی به بانک اطلاعاتی از طريق يک بلاک Exception handling انجام تا پيشگيری لازم در خصوص مسئله Locking ، انجام شود .
    َCheckPassword Function
    Private Function CheckPassword ( Byval UserName As String , ByVal Password As String ) As Boolean
    Dim bSuccess As Boolean
    Password = FormsAuthentication.
    HashPasswordeForStoringInConfigFile ( Password , "SHA1")
    Dim oleCommand As New OleDbCommand ( "SELECT * FROM Users" + "WHERE UserName='" + txtName.Text + "'" , oledbUsers )
    Try
    oledbUsers.Open ( )
    Dim rdrUsers As OledbDataReader = oleCommand.ExecuteReader ( )
    While rdrUsers.Read( )
    If Password =rdrUsers.Item("Password") Then bSuccess = True
    End While

    If oleCommand.ExecuteNonQuery ( ) Then bSuccess = True
    oledbUsers.Close ( )
    Catch
    bSuccess =False
    oledbUsers.Close ( )
    End Try
    Return bSuccess
    End Function
    تمامی کاربران با توجه به تنظيمات انجام شده در بخش <authentication> فايل Web.config ، بصورت اتوماتيک به صفحه LoginBaseDb.aspx هدايت خواهند شد .
    Web.Config file setting for <authentication> element
    <authentication mode="Forms">
    <forms name="Test1Cookie" loginUrl ="LoginBaseDB.aspx" timeout="15"></forms>
    </authentication>
    صفحه LoginBaseDb.aspx :

    در صورت درج نام و رمز عبور غيرمعتبر و فشردن دکمه "ورود به سايت " توسط کاربر ، يک پيام خطاء نمايش داده می شود ( در صورت تائيد نام و رمز عبور ، امکان دستيابی کاربر به برنامه فراهم می گردد) .

    پس از درج نام و رمز عبور و فشردن دکمه " کاربر جديد " ، مشخصات کاربر در بانک اطلاعاتی کاربران ذخيره می گردد .

    در بخش پنجم اين مقاله به بررسی روش Passport Authentication خواهيم پرداخت .

Thread Information

Users Browsing this Thread

هم اکنون 1 کاربر در حال مشاهده این تاپیک میباشد. (0 کاربر عضو شده و 1 مهمان)

User Tag List

قوانين ايجاد تاپيک در انجمن

  • شما نمی توانید تاپیک ایحاد کنید
  • شما نمی توانید پاسخی ارسال کنید
  • شما نمی توانید فایل پیوست کنید
  • شما نمی توانید پاسخ خود را ویرایش کنید
  •