PDA

View Full Version : نمایش پسورد های موجود در دیتابیس ممبرشیپ



bitcob589
چهارشنبه 17 خرداد 1391, 20:52 عصر
با سلام
چگونه می توان پسورد هر کاربری که در دیتابیس ممبرشیپ وجود دارد در گریدویو نمایش دهیم

m.akar
چهارشنبه 17 خرداد 1391, 21:54 عصر
تا آنجایی که من می دانم پسورد ها Hash می شود و سپس در درون دیتابیس قرار می گیرد و دیگر قابل بازیابی نیست. مکانیزم چک پسورد نیز به این ترتیب است که پسورد وارد شده توسط کاربر با همان الگوریتم Hash می شود و بعد با پسورد Hash شده موجود در دیتابیس مقایسه می شود.

zgolestan
پنج شنبه 18 خرداد 1391, 16:04 عصر
سلام
همون طور که دوستمون گفتن ، پسوردها با الگوریتم Hash ، رمزنگاری میشن که این الگوریتم ، یه الگوریتم غیر قابل بازگشت هست، یعنی به هیچ وجه نمی تونید بعد از ذخیره ی پسورد در دیتابیس ، به پسورد دسترسی پیدا کنید و اون رو جایی نمایش بدین. مگر اینکه نوع ذخیره ی پسورد رو تغییر بدین.
توی Asp.net ، نحوه ذخیره ی پسوردها(passwordFormat) به صورت Default روی Hashed تنظیم شده ولی شما می تونید این مقدار رو از طریق WebConfig به صورت زیر تغییر بدین (یا اون رو اضافه کنید) :

<configuration>
<system.web>
<membership>
<providers>
<clear/>
<add . . . . . . passwordFormat="Clear" enablePasswordRetrieval="true" enablePasswordReset="false" requiresQuestionAndAnswer="false" . . . . . . />
</providers>
</membership>
</system.web>
</configuration>

شما با استفاده از passwordFormat میتونید مشخص کنید که پسورد با چه نوعی توی دیتابیس ذخیره بشه، که 3 تا انتخاب دارین : Clear - Hashed - Encrypted . در صورتی که روی Clear بذارین ، پسوردها به همون شکلی که هستن و به صورت متن ساده توی دیتابیس ذخیره میشن. ولی با اون 2 تا گزینه ی دیگه، پسوردها رمزنگاری میشن.
شما می تونید برای دسترسی به پسوردها ، passwordFormat="Clear" قرار بدین و اونا رو رمزنگاری نکنید، که البته مسلما در این حالت امنیت سایتتون یه مقدار پایین میاد.

bitcob589
پنج شنبه 18 خرداد 1391, 16:26 عصر
چگونه می توان در گریدویو با توجه با نام کاربری هر کاربر رمز عبور هر کاربر را نمایش داد

zgolestan
پنج شنبه 18 خرداد 1391, 16:46 عصر
میخواین فقط رمز کاربری که لاگین کرده رو بدست بیارین؟ یا رمز همه ی کاربرهارو باهم میخواین توی گریدویو داشته باشین؟

bitcob589
پنج شنبه 18 خرداد 1391, 16:52 عصر
میخواین فقط رمز کاربری که لاگین کرده رو بدست بیارین؟ یا رمز همه ی کاربرهارو باهم میخواین توی گریدویو داشته باشین؟
رمز همه ی کاربرهارو باهم در گرید ویو

karim orooji
پنج شنبه 18 خرداد 1391, 17:06 عصر
سلام
منم با حرف دوسنمون جناب m.akar موافقم
پست شماره 2


یا علی

zgolestan
پنج شنبه 18 خرداد 1391, 17:23 عصر
ابتدا شما باید حتما نوع پسوردهای ذخیره شده رو به Clear تغییر داده باشین و سپس یوزرهارو ثبت کنید. در غیر این صورت کد زیر بهتون جواب نمیده.

برای نمایش یوزرها و پسوردها در گریدویو :
من یه کدی براتون نوشتم، نمیدونم نظر دوستان دیگه درمورد این کد چی هست ، ولی این کد کاملا جواب میده :

ProtectedSub Page_Load(sender AsObject, e As System.EventArgs) HandlesMe.Load
For i = 1 To GridView2.Rows.Count - 1
Dim user1 AsMembershipUser
user1 = Membership.GetUser(GridView2.Rows(i).Cells(0).Text )
GridView2.Rows(i).Cells(1).Text = user1.GetPassword.ToString
Next
EndSub


یه گریدویو روی فرم بذارین که دو تا ستون داشته باشه. ستون اولش ، با استفاده از دیتاسورس ، یوزرنیم ها رو از توی جدول aspnet_Users بخونه و ستون دومش خالی باشه و سپس کدهای بالارو توی لود فرم بنویسید.
موفق باشید...