PDA

View Full Version : MemberShip و Authentication بررسی مزایا و معایب! ! !



hamedgh
جمعه 18 آبان 1386, 17:57 عصر
سلام به همه برنامه نویسان عزیز
اگر کسی مشکلی با این امکانات جدید دارد می تواند در این تاپیک مطرح کند
و اگر هم مشکلش حل شده هم مشکل و هم راه حل ان را بگذارد
تا ما هم فیضی از تجربیات عزیزان ببریم
برای شروع هم من کلاسی از Membership که از کلاس اصلی ارث بری کرده
و بعضی متد ها دوباره باز نویسی شده می گذارم تا درک بیشتری از نحوه کار قسمتی از این
امکانات جدید پیدا کنیم
فقط هدف تشکیل این تاپیک یادتان نرود حتما شرکت کنید ! ! !

mp2009
جمعه 18 آبان 1386, 20:26 عصر
ممنون از این کار خوبتان

m.hamidreza
جمعه 18 آبان 1386, 22:54 عصر
تاپیک خیلی بیشتره !
یه مقدمه این میشه که بعضی از دوستان مروج استفاده از این امکانات هستند و بعضی دیگه مثه من منکر نیستیم ولی پیشنهاد هم نمی کنیم ! علت اصلیش بر میگرده به Handle کردن Error های این امکانات که رفع کردنشون خیلی وقت گیر و عجیبه ! و بهتر اینه که شما از اول بشینی خودت کد رو بنویسی . . .
دوستان موافق و مخالف بقول یکی از دوستان بیان وسط ! :لبخندساده:

merlin_vista
جمعه 18 آبان 1386, 23:48 عصر
خوب دوست عزیز شما میگید خودتان بنویسید
خوب اینجاست که سوال شروع میشه ( Session یا Cokise )

anubis_ir
شنبه 19 آبان 1386, 12:58 عصر
دوستمون در بالا درست گفتند. شما می‌تونید این سیستم رو خودتون طراحی کنید. به طور قطع بعد از یک سال مطالعه و تلاش به چیزی می‌رسید که الان در asp.net 2.0 موجود است.

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

و خیلی موارد دیگر. بهتر است چرخ را مجددا اختراع نکنید.

hamedgh
پنج شنبه 08 آذر 1386, 22:01 عصر
دوستان من این تاپیک را را ه انداختم که کسی اگر به مشکلی در مورد authenticaiton برخورد
بگویید اینقدر کسی نگفت تا خودم به مشکل برخوردم


در سایت من(به قول بچه ها زپرتی!!!) اگر کسی تایم اوت شود اگر ریکوست بفرستد باید دوباره لوگین کند (مهم نیست چشش دراد!!!!) ولی چون من از update panel استفاده می کنم این موجود جدید کاربر به صفحه لوگین نمی فرستد بلکه قفل می شود البته برای چند لحظه بعد هم هیچ اتفاقی نمی افتد تا صفحه را رفرش نکند نمی فهمد مشکل از کجاست (باید دوباره لوگین کند )
هر چه زمان تایم اوت را زیاد می کنم هم باز هم فرقی نمی کند نمی دانم چرا ؟؟
این هم وب کانفیگ من

<sessionState cookieless="UseCookies" timeout="5000" mode="InProc" />
<roleManager enabled="true" cacheRolesInCookie="true" cookieName=".hgh"
cookieTimeout="5000" cookiePath="./hgh" cookieRequireSSL="false" >
<providers>
<clear />
<add connectionStringName="LocalSqlServer" applicationName="/"
name="AspNetSqlRoleProvider" type="System.Web.Security.SqlRoleProvider, System.Web, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" />
</providers>
</roleManager>

<membership defaultProvider="SqlProvider" userIsOnlineTimeWindow="5000">
<providers>
<add
connectionStringName="LocalSqlServer"
enablePasswordRetrieval="true"
enablePasswordReset="true"
requiresQuestionAndAnswer="false"
applicationName="/" requiresUniqueEmail="true"
passwordFormat="Clear" minRequiredPasswordLength="2"
minRequiredNonalphanumericCharacters="0"
passwordStrengthRegularExpression=""
name="SqlProvider"
type="System.Web.Security.SqlMembershipProvider" />
</providers>
</membership>
<authentication mode="Forms">
<forms loginUrl="login.aspx" slidingExpiration="true"
path="./hgh" protection="All" timeout="5000"
cookieless="UseCookies"
requireSSL="false"
defaultUrl="Default.aspx"
enableCrossAppRedirects="true" >
<!--enableCrossAppRedirects="true"
slidingExpiration="true"-->

<credentials>
</credentials>
</forms>
</authentication>

mahdi_farhani
جمعه 09 آذر 1386, 00:20 صبح
فرض کنید می‌خواهید این سیستم را خودتان طراحی کنید:
- بعد از کمی مطالعه ...خوب...پسورد را باید هش کرد. (الان در سیستم عضویت دات نت 2 موجود است)
- بعد از کمی مطالعه ...خوب...سیستم لاگین باید بتواند تکرارهای مکرر لاگین‌های نادرست جهت هک کردن پسورد را خنثی و اکانت را لاک کند. (الان در سیستم عضویت دات نت 2 موجود است)
- بعد از کمی مطالعه ...خوب... طول پسورد و همچنین اندازه آن و حروف بکار رفته در آن باید طوری باشد که به راحتی حدس زده نشود و به سادگی قابل هک شدن نباشد. (الان در سیستم عضویت دات نت 2 موجود است)
- بعد از کمی مطالعه ...خوب... کاربر باید بتواند به نحو "امنی" پسورد فراموش شده خودش را بازیابی کند یا یک پسورد جدید برای او تولید و ارسال گردد. (الان در سیستم عضویت دات نت 2 موجود است)
- بعد از کمی مطالعه ...خوب... این سیستم مخصوص من در صورت وجود اکتیودایرکتوری ویندوز سرور در شبکه باید بتواند از آن هم استفاده کند. (الان در سیستم عضویت دات نت 2 موجود است)

سلام دوستان ، توضیحات این دوست عزیزمون خیلی خوب است و من هم مخالف اون نیستم ولی من معتقدم که آدم باید نون بازو خودشو بخره ( البته نه تو همه موارد )
1- هش کردن که هیچ کاری نداره ، این همه الگوریتم ریخته نه دوست نداشتی خودت الگوریتم بساز این که کاری نداره .
2 - خوب یه فیلد Lock میزاری تو دیتابیست هروقت پسورد اشتباه زد یکی بش اضافه کن ، به 3 - 5 - 7 و ..... هرچی رسید بش بگو این دیگه Lock شده .
3- با یه Vlidator هم میتونی کنترل کنی که ایا طول پسورد کافی هست یا نه ، یه تابعی هم میتونی بنویسی خیلی ساده که بیاد استحکام پسورد رو بررسی کنه مثلا از حروف کوچک و بزرگ استفاده کرده ، عدد داره ، سمبل هم داره این میشه یه پسورد قوی و....
4-خوب SMTP که داره یه رشته بر اساس نام کاربری و هرچیزی که عشق میکشه و براساس یه فرمول که عشقت میکشه تو لید میکین و براش ارسال میکین به میلش ، حالا یه صفحه هم براش تولید میکینی میگی هروقت این رشته امد دیکود که و پسورد را براش Reset میکنه که این پسورد هم به صورت رندوم ساخته می شود .
5- اکتیو دایرکتوری رو نمیدونم منظورت چیه ولی فکر کنم Mode="windows" بشه پیادش کرد تا حالا به شخصه اینکارو نکردم و هیچ اضهار نظری نمیکنم که اشتباهی پیش نیاد .
حالا اینها رو گفتم که اینو بگم که همیشه نباید آماده خور باشیم یه کم سختی لازمه .
حالا فکرشو بکنید که اگر داخل همین سیستم لاگین که که Asp.net 2.0 در اختیار ما گذاشته یه باگ پیدا بشه ( ماشا الله که ماکروسافت اصلاً برنامه هاش باگ نداره ) چه بلایی ممکن سر سیستم بیاد . البته اینم بگم که برنامه که خودمون هم بنویسیم خالی از اشکال نیست ولی حداقل میدونم خودم خراب کردن به خودمون فوش میدیم . ولی اون موقه هم به خودمون فش میدیم و هم به ماکروسافت.
--------------------------------------------
در پاسخ به مرلین عزیز که باید بگم که میشه با Session پیدا کرد ، چون یه مقدار امنتیش نسبت به کوکی بشتره ، در ضمن شما میتونید بدون استفاده از کوکی و سیژن و با استفاده از مباحث شئ گرائی اونو به راحتی پیدا کنی و هیچ مشکلی تو سیستمت پیش نیاد . الان من تو سیستم جدیدم اینکارو کردم و به هیچ عنوانی من داخل سیستم از سیژن استفاده نکردم .
------------------------------------------
مشکلم این دوستمون هم من سر در نمیارم که چرا اینطوری میشه ، چون من Updatepanel استفاده میکنم و AjaxToolkit و هیچ مشکلی با Login ندارم .

hamedgh
جمعه 09 آذر 1386, 19:17 عصر
اگر مشکل من را فهمیدید که لطفا جواب بدهید و اگر نه
این را طوری می خواهم ست کنم که به این زودی ها تایم اوت نشود
و بدون لوگین دوباره بتواند همچنان به کارش ادامه بدهد من هرچی تایم اوت را زیاد میکنم
جواب نمی دهد نمی دانم چکار کنم

miladr
جمعه 09 آذر 1386, 21:12 عصر
فکر کنم اگه تایم اوت رو صفر کنی بینهایت میشه.
و گر نه میتونی از کوکی استفاده کنی.

hamedgh
شنبه 10 آذر 1386, 09:43 صبح
فکر کنم اگه تایم اوت رو صفر کنی بینهایت میشه.
و گر نه میتونی از کوکی استفاده کنی.

نه دیگه تا این حد حد اقل برای یک روز

hamedgh
یک شنبه 11 آذر 1386, 19:16 عصر
کسی مشکل من را حل نمی کند حیاتی است اصلا کسی مشکل من را فهمید !!!!!!!!!!!

m.hamidreza
یک شنبه 11 آذر 1386, 19:38 عصر
توی انجمن های غیر ایرانی و Google هم جستجو کن برادر . . . کسی که قبلا به این مشکل خورده باید حلش هم کرده باشه !

hamedgh
یک شنبه 11 آذر 1386, 20:49 عصر
توی انجمن های غیر ایرانی و Google هم جستجو کن برادر . . . کسی که قبلا به این مشکل خورده باید حلش هم کرده باشه !
__________________
یعنی اینقدر این مشکل من نادر است !!!!!!!!!!

اصل مشکل من اینجاست که چرا اصلا update panel انقدر مشکل هر طوری با هاش کار می کنم با خودش درگیر است نم دانم شاید بی خیالش شدم
ولی احتمالا این مشکلات در دات نت 3.5 حل شده باشد چون اجاکسش را که امتحان کردم
خیلی قدرتمند تر و سریعتر بود بهر حال کسی اگر چیزی به ذهنش رسید ما رو بی خبرنگذارد