PDA

View Full Version : حذف Security Question از کنترل CreateUser خود ASP.NET



mehr83
یک شنبه 20 اردیبهشت 1388, 22:15 عصر
با چه کدی Security Question و Security Answer و Email‌ را از کنترل CreateUser خود ASP.NET میتونم حذف کنم؟

----------------------------------------------------------------------
فروش ويژه مجموعه كامل محصولات آموزش برنامه نويسي AppDev
Asp.NET , Visual Basic.NET , Visual C#.NET , SQL Server 2008 , Web Service , LINQ , Html , Xml , SharePoint
اطلاعات بيشتر در
http://sadrasystem.org (http://sadrasystem.org/)

ali.akhbary
دوشنبه 21 اردیبهشت 1388, 10:23 صبح
خیلی دردسر داره ولی این کد رو تو web.config وارد کن.



<membership defaultProvider="AspNetdbSqlMembershipProvider">
<providers>
<remove name="AspNetSqlMembershipProvider"/>
<add name="AspNetdbSqlMembershipProvider" connectionStringName="ConnectionString" type="System.Web.Security.SqlMembershipProvider, System.Web, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" enablePasswordRetrieval="false" enablePasswordReset="true" requiresQuestionAndAnswer="true" applicationName="/" requiresUniqueEmail="false" passwordFormat="Hashed" maxInvalidPasswordAttempts="5" minRequiredPasswordLength="7" minRequiredNonalphanumericCharacters="1" passwordAttemptWindow="10" passwordStrengthRegularExpression=""/>
</providers>
</membership>

ali.akhbary
دوشنبه 21 اردیبهشت 1388, 10:26 صبح
با این کدها میتونی هر چی بخوای کم و زیاد کنی.
requiresQuestionAndAnswer را false کن.:متفکر::متفکر:

mehr83
دوشنبه 21 اردیبهشت 1388, 12:46 عصر
برای حذف ایمیل باید چیکار کنم؟
میشه موارد بالا را یکی یکی توضیح بدین؟

----------------------------------------------------------------------
فروش ويژه مجموعه كامل محصولات آموزش برنامه نويسي AppDev
Asp.NET , Visual Basic.NET , Visual C#.NET , SQL Server 2008 , Web Service , LINQ , Html , Xml , SharePoint
اطلاعات بيشتر در
http://sadrasystem.org (http://sadrasystem.org/)

ezamnejad
دوشنبه 21 اردیبهشت 1388, 14:35 عصر
سلام
برای حذف ایمیل فقط خاصیت RequireEmail کنترل Create User را False کنید .


passwordAttemptThreshold="5"
passwordAttemptWindow="30"

خط اول تعداد دفعات ورود ناموفق را مشخص میکنه و خط دوم مدت زمان این عملیات را . مثلا اگه در مدت 30 دقیقه 5 بار رمز ورود اشتباه وارد بشه حساب قفل میشه .


minRequiredNonalphanumericCharacters = "1"
minRequiredPasswordLength="7"

تعداد کاراترهای خاص در رمز ورود را مشخص میکنه .
طبق توضیحی که msdn نوشته non-alphanumeric کاراکترهایی هستند که متد IsLetterOrDigit مقدار false برای آنها بر می گرداند یعنی نه عدد و نه حروف .
دومی هم که حداقل طول کلمه عبور را مشخص می کند



requiresUniqueEmail="false"
passwordFormat="clear"
enablePasswordRetrieval="true"

گزینه اول باعث میشه ایمیل های تکراری ثبت نشه یعنی یه نفر با یک ایمیل نمیتونه دوبار ثبت نام کنه اگر true باشه .
دومی نوع ذخیره سازی رمز ورود که به صورت clear (متن معمولی) و hash (به صورت رمز شده) ذخیره میشه .
اگر رمز ورود hash نشده باشه با فعال کردن گزینه سوم رمز ورود کاربران در صورت نیاز ارسال میشه .


enablePasswordReset="true"

وقتی رمز ورود به صورت Hash ذخیره میشه با فعال کردن این گزینه رمز جدید تولید شده و ارسال می شود . در این حالت باید گزینه requiresQuestionAndAnswer="true" باشه .

goldax
دوشنبه 21 اردیبهشت 1388, 18:16 عصر
ممنون از این تاپیک خوب

احمد سامعی
چهارشنبه 30 اردیبهشت 1388, 13:29 عصر
خیلی دردسر داره ولی این کد رو تو web.config وارد کن.


منظور از خيلي دردسر داره چيه ؟
يعني ممكن مشكل براي سايت به وجود بياره يا فقط منظور سختي كدنويسي از نظر شما ؟


توضيح شما خيلي خوب بود واقعاً دست درد نكنه اما چندتا سوال برام پيش آمد !




requiresUniqueEmail="false"
passwordFormat="clear"
enablePasswordRetrieval="true"

وقتی رمز ورود به صورت Hash ذخیره میشه با فعال کردن این گزینه رمز جدید تولید شده و ارسال می شود . در این حالت باید گزینه requiresQuestionAndAnswer="true" باشه .

مي شه يكم در مورد پياده سازي اين مورد توضيح بدين واسه وقتي كه Hash فعال و مي خواي ResetPass كني آيا كنترلي هم داره يا بايد از ForgetPass استفاده كرد


يك سوال مهم ديگه آيا اين بانك مشكل امنيتي نداره و مطمئن هست و مي شه تو سايت هاي تجاري كه مسائل مالي دارن هم ازش استفاده كرد؟ منظورم اينكه چون يك چيز عمومي مساله هك كردنش چطوري ؟ يا براي سايت هاي مالي بايد خودمون Login با الگوريتم رمزكردن و اين مسائل بنويسيم

احمد سامعی
چهارشنبه 06 خرداد 1388, 00:43 صبح
passwordAttemptThreshold="5"
passwordAttemptWindow="30"

خط اول تعداد دفعات ورود ناموفق را مشخص میکنه و خط دوم مدت زمان این عملیات را . مثلا اگه در مدت 30 دقیقه 5 بار رمز ورود اشتباه وارد بشه حساب قفل میشه .
[CODE]

آقا دو تا سوال پست قبلي كه كسي جواب نداد.(هنوزم سوال ؟برام)
اين موردي كه گفتي چطوري پياده سازي مي شه ؟ منظورم صفحه اخطار كه اعلام مي كنه چند ورود ناموفق بوده مثل همين فروم ؟ با چه خواصيتي از LoginControl بايد اين كار كرد ؟

ali.akhbary
چهارشنبه 06 خرداد 1388, 12:22 عصر
يك سوال مهم ديگه آيا اين بانك مشكل امنيتي نداره و مطمئن هست و مي شه تو سايت هاي تجاري كه مسائل مالي دارن هم ازش استفاده كرد؟ منظورم اينكه چون يك چيز عمومي مساله هك كردنش چطوري ؟ يا براي سايت هاي مالي بايد خودمون Login با الگوريتم رمزكردن و اين مسائل بنويسيم

مطمئنا اگه کلیدها رو درست انتخاب و مقدار دهی کنی مشکلی نداری!!!!!!!!!!!!
البته هیچ وقت نمی تونی روی هیچ چیزی قطعی حساب کنی، حتی روی مایکروسافت.!

ali.akhbary
چهارشنبه 06 خرداد 1388, 12:45 عصر
کد زیر رو میشه توی web.config و توی system.web قرار داد.

<machineKey decryption="AES" validation="SHA1" decryptionKey="1513F567EE75F7FB5AC0AC4D79E1D9F25430E3E2F1BCDD3370 BCFC4EFC97A541" validationKey="32CBA563F26041EE5B5FE9581076C40618DCC1218F5F447634 EDE8624508A129"/>




The decryptionKey and validationKey values were taken from Steve Gibson’s Perfect Passwords web page (http://www.grc.com/passwords.htm), which generates 64 random hexadecimal characters on each page visit. To lessen the likelihood of these keys making their way into your production applications, you are encouraged to replace the above keys with randomly generated ones from the Perfect Passwords page.

از تصویر زیر یه نیگاه به توضیحات بنداز.
هر چند این مطلب رو نمی خواستی ولی بدرد میخوره.

احمد سامعی
پنج شنبه 28 مرداد 1389, 02:46 صبح
سلام
من هنوزم با این مسئله مشکل دارم
اول این که کاربر زودتر time out می شه از چیزی که ست کردم
دوم اینکه مگه نباید وقتی یک کاربر چند بار پسورد اشتباه می زنه تا یک مدت خواص اکانتش قفل بشه و در مراجعه بعد از اون زمان خاص با زدن پس درست اکانت باز بشه یا بتونه درخواست رمز جدید بده. اما بعد از قفل شدن فقط باید دستی قفل باز کرد با فراخوانی متد های مبرشیپ
مشکل از کجا می تونه باشه ؟


<membership defaultProvider="SqlProvider" userIsOnlineTimeWindow="30">
<providers>
<clear/>
<add name="SqlProvider" type="System.Web.Security.SqlMembershipProvider" connectionStringName="MySqlConnection" minRequiredNonalphanumericCharacters="0" requiresQuestionAndAnswer="false"/>
</providers>
</membership>