PDA

View Full Version : سوال: اشکال در کدنویسی برای تغییر رمز کاربر



veniz2008
جمعه 25 تیر 1389, 19:34 عصر
سلام،من میخوام که پسورد فعلی کاربر رو با پسورد جدید تغییر بدم واسه همین از 3 تا textbox در فرمم استفاده کردم که یکیشون واسه گرفتن پسورد قبلی و دو تا هم واسه وارد کردن پسورد جدیده،ولی نمیدونم از چه کدی واسه گرفتن پسورد قبلی و پسورد جدید باید استفاده کنم،و آیا نیازه که توی جدول sql ای که ساختم 2 تا فیلد پسورد تعریف کنم یا خیر.

hlikehamed
جمعه 25 تیر 1389, 19:41 عصر
اول باید یه جوری کاربر رو پیدا کنی. می تونی با username رکورد مربوط به اون رو پیدا کنی. بعد اگر پسورد قبلی رو درست وارد کرده بود.
پسورد جدید رو جایگزین پس قبل کنی.
در واقع یه دستور select بعد یه دستور update

ricky22
جمعه 25 تیر 1389, 19:54 عصر
سلام،من میخوام که پسورد فعلی کاربر رو با پسورد جدید تغییر بدم واسه همین از 3 تا textbox در فرمم استفاده کردم که یکیشون واسه گرفتن پسورد قبلی و دو تا هم واسه وارد کردن پسورد جدیده،ولی نمیدونم از چه کدی واسه گرفتن پسورد قبلی و پسورد جدید باید استفاده کنم،و آیا نیازه که توی جدول sql ای که ساختم 2 تا فیلد پسورد تعریف کنم یا خیر.
نه دیگه
همون تو برنامه چک می کنی که ایا دو پسورد یکی هستند یا خیر!
از Membership هم می تونی استفاده کنی

veniz2008
جمعه 25 تیر 1389, 20:53 عصر
دوستان،حرف شما کانلا صحیحه ولی این بحث تئوری قضیه است ولی من در نوشتن کدها مشکل دارم لطف کنید کد c# رو بهم بدید،چون من از دستورات c# اطلاع زیادی ندارم.تشکر

ricky22
جمعه 25 تیر 1389, 20:57 عصر
ببین برادر من
txtOldPassword
txtNewPassword
txtPasswordConfirmation

این 3 تا Textbox برنامت هست دیگه.
اولی رو چک می کنی با پسورد فعلی پایگاه داده.
اگر دومی و سومی برابر بودند Update می کنی در پایگاه
موفق باشید.

محمد متاله
جمعه 19 آذر 1389, 20:45 عصر
چه جوری می خوای پایگاه را آپدیت کنی

اصل سوال همی هست که در این جا خدمتتان می گویم
1- می تونیم با User.Identity.IsAuthenticated بفمیم که آیا کاربر لاگین کرده یا نه
2- با Page.User.Identity.Name می توان فهمید که در این صفحه نام کاربری شخص چیست توجه داشته باشید نام کاربری از session خوانده می شود
3- با (MembershipUser user = Membership.GetUser(Page.User.Identity.Name می توان کلاس مربوط به کاربر را بدست آورد
4- و با (user.ChangePassword(txtOldPassWord.Text, txtNewPassWord.Text می توان پسورد کاربر را تغییر داد

به نظر راحت بود مگه نه :قهقهه:
تابع مقدار bool برمی گرداند و مشخص می کند که آیا تغییرات انجام شده یا نه
در این جا کلیه مراحل گفته شده را یکجا می نویسم



protectedvoid btnChangePassWord_Click(object sender, EventArgs e)
{
if (User.Identity.IsAuthenticated)
{
MembershipUser user = Membership.GetUser(Page.User.Identity.Name);
if (user.ChangePassword(txtOldPassWord.Text, txtNewPassWord.Text))
{
//موفقیت و پیغام مناسب به کاربر
}
else
{
//عدم موفقیت و باز هم پیغام مناسب به کاربر
}


}
}

cjNet
شنبه 20 آذر 1389, 02:54 صبح
سلام،من میخوام که پسورد فعلی کاربر رو با پسورد جدید تغییر بدم واسه همین از 3 تا textbox در فرمم استفاده کردم که یکیشون واسه گرفتن پسورد قبلی و دو تا هم واسه وارد کردن پسورد جدیده،ولی نمیدونم از چه کدی واسه گرفتن پسورد قبلی و پسورد جدید باید استفاده کنم،و آیا نیازه که توی جدول sql ای که ساختم 2 تا فیلد پسورد تعریف کنم یا خیر.
سلام .
به نظر من اگه می خوای کار ساده تر باشه از چهار تا TextBox استفاده کن :
یکی برای نام کاربری - کلمه عبور قدیمی - کلمه عبور جدید - تکرار کلمه عبور جدید

حالا اگه خیلی اصرار داری که موقع تغییر کلمه عبور ، نام کاربری نگیری ، می تونی موقع Login شدن کاربر، نام کاربری شو در Session ذخیره کنی ( یا از کوکی استفاده کنی ) ...

فکر کنم کد زیر بتونه مشکلتو حل کنه :

update LoginTable set password=@newPassword where userName=@userName and password=@oldPasswor