ورود

View Full Version : کار با تغییر رمز



ertebat
چهارشنبه 17 شهریور 1389, 01:18 صبح
سلام من کامپوننت تغییر رمز رو در صفحه قرار دادم حالا اگه کسی رمزش رو تغییر بده باید چه کدی رو وارد کرد که این عمل صورت بگیره؟ ممنون

persian_bigboy
چهارشنبه 17 شهریور 1389, 22:34 عصر
سلام دوست من ، از سوال شما معلومه که آماتور هستی . پیشنهاد میکنم که حتما یک کتاب ado.net بخر و بخون مشکلت حل میشه . درضمن شما باید یک دستور Update در اس کیوال بنویسی که تغییر رو انجام بده . مرسی

احمد سامعی
پنج شنبه 18 شهریور 1389, 00:40 صبح
شما قبل از اینکه کامپونت قرار بدی باید مشخص کنی که کاربرها چطوری در برنامه ایجاد می کنی و چطوری اونها به برنامه لاگین می شن

تا بعد به تغییر رمز برسیم

aminghaderi
پنج شنبه 18 شهریور 1389, 01:20 صبح
پیشنهاد میکنم که حتما یک کتاب ado.net بخر و بخون
نیازی به خریدن کتاب ندارند ، فقط کافیه داخل سایت سرچ داشته باشند.
این جوری اطلاعاتی به صورت زیر گیر می یاد:
1- خلاصه.
2- مفید.
3- مختصر.

:چشمک:

موفق باشید.

ertebat
جمعه 19 شهریور 1389, 00:33 صبح
سلام حتی اگه بدردم نخوره خدا همه ما رو بیامرزه:خجالت:
--------------------
من با ممبرشیپ کاربر ایجاد کردم حالا یک کنترل تغییر رمز تو فرم طراحی قرار دارم حالا چی کارکنم؟
--------------------
من با ممبرشیپ کاربر ایجاد کردم حالا یک کنترل تغییر رمز تو فرم طراحی قرار دارم حالا چی کارکنم؟

veniz2008
جمعه 19 شهریور 1389, 00:54 صبح
سلام حتی اگه بدردم نخوره خدا همه ما رو بیامرزه:خجالت:
--------------------
من با ممبرشیپ کاربر ایجاد کردم حالا یک کنترل تغییر رمز تو فرم طراحی قرار دارم حالا چی کارکنم؟
--------------------
من با ممبرشیپ کاربر ایجاد کردم حالا یک کنترل تغییر رمز تو فرم طراحی قرار دارم حالا چی کارکنم؟
سلام دوست عزیز،میتونی با 3 تا textbox کارت رو راه بندازی،که اولی پسورد فعلی و دومی و سومی هم برای ورود رمز جدید باشن، البته شما باید فیلد کلیدت رو هم در صفحه جاری داشته باشی که میتونی واسه اینکار از session استفاده کنی(label4 هم در کد مربوط به یوزرنیم میشه که فیلد کلید هستش).همچنین برای کنترل textbox هات از required field validator استفاده کن،من کد تغییر رمز رو واست میزارم کافیه ک داخل دکمه ویرایش تابع sqlreder2(sender, e) رو فراخوانی کنی،امیدوارم که کارت راه بیفته،موفق باشی:

public void sqlreader2(object sender, EventArgs e)
{


SqlConnection conn = new SqlConnection("Data Source = .\\wincc;Initial Catalog=US_DB;Integrated Security=True");
SqlCommand cmd = new SqlCommand();
cmd.CommandText = "SELECT * FROM Student";
SqlDataAdapter Adapter = new SqlDataAdapter();

Adapter.SelectCommand = new SqlCommand();
Adapter.SelectCommand.Connection = conn;
Adapter.SelectCommand.CommandText = "SELECT * FROM Student";

DataTable dt = new DataTable();

Adapter.Fill(dt);


string s1;
string s2;
foreach (DataRow dr in dt.Rows)
{
s1 = ((string)dr["UserName"].ToString()).TrimEnd();
s2 = ((string)dr["Password"].ToString()).TrimEnd();
if (Label4.Text == s1 && TextBox1.Text == s2 && TextBox2.Text == TextBox3.Text)
{

cmd.CommandText = ("UPDATE Student SET Password =" + "'" + TextBox2.Text + "'" + "WHERE UserName =" + "'" + Label4.Text + "'");
cmd.Connection = conn;
conn.Open();
cmd.ExecuteNonQuery();
conn.Close();
Label5.Text = "تغییر رمز با موفقیت انجام شد";
TextBox1.Text = "";
TextBox2.Text = "";
TextBox3.Text = "";
break;


}
else
{
Label5.Text = "مقادیر وارد شده صحیح نیست";

}
}
}

احمد سامعی
جمعه 19 شهریور 1389, 11:44 صبح
سلام جناب mohammaddou

ممنون از وقتی که گذاشتید اما راه حل شما اشکالات زیادی داره از جمله استفاده از دیتاآداپتر برای خواندن مقادیر
دوم اینکه ایشون از ممبرشیپ پیشفرض استفاده کردن پس احتیاج به این همه راه رفتن نداره کافیه از کلاس های خود ممبرشیپ استفاده بشه

جناب erttebat شما در دوجا می تونید به کاربر اجازه تعویض رمز عبور بدهید.
1. وقتی لاگین کرده
2. وقتی که رمز فراموش کرده و حالا می خواد رمز ریست کنه

در حالت اول ساده هست شما در بخشی پوشه و یا مسیری که کاربری بعد از لاگین وارد می شه یک صفحه اضافه کنید و کنترل تغییر رمز از بخش Login تولباکس به صفحه اضافه کنید و تمام به همین سادگی

اما در حالت دوم شما چند روش می تونید انجام بدید:
1. از کنترل forget password استفاده کنید که در اون خودش نام کاربری دریافت می کنه و رمز جدید که رندم ساخته شده به ایمیل کاربر می فرسته
2. می تونید خودتون از کاربر نام کاربری بگیرید و بعد سوالات امنیتی بپرسید و در صورت صحیح بودن اقدام به تغییر رمز کنید برای اینکار باید از متد ResetPassword از کلاس MembershipUser یا Membership استفاده کنید خروجی این متد رمز عبور جدید هست
حالا می تونید دو تا کار انجام بدید یا همین رمز برای کاربر ارسال یا نمایش بدید
یا رمز عبور جدید که کاربر وارد کرد همراه این رمز ریست شده با استفاده از متد ChangePassword همان کلاس های بالا تغییر رمز مجدد انجام بدید اما قبلش باید حتما بررسی کنید این کاربر وجود داره یا نه
کدش هم می شه این:

protected void PasswordRecovery_Click(object sender, EventArgs e)
{
try
{
if (!string.IsNullOrEmpty(this.textboxUserName.Text.T rim()))
{
if (Membership.FindUsersByName(textboxUserName.Text.T rim()).Count == 1)
{
MembershipUser user = Membership.GetUser(this.textboxUserName.Text.Trim( ));
string oldPas = user.ResetPassword();
string newPas = textboxNewPass.Text.Trim();
user.ChangePassword(oldPas, newPas);
}
else { this.LableFailureText.Text = "این نام کاربری وجود ندارد"; }
}
else { this.LableFailureText.Text = "نام کاربری را وارد نمائید"; }
}
catch { this.LableFailureText.Text = "خطا"; }
}

اما اگر خودت کلاس ویژه برای کاربرها نوشته باشی باز هم راه حل همین فقط دریافت نام کاربر و متد تغییر رمز رو هم باید خودت بنویسی

شاد بمانید

persian_bigboy
یک شنبه 21 شهریور 1389, 21:54 عصر
با تشکر از دوستان ، همه استاد هستن و بهترین راهکار ها رو برای شما گفتن ، امید وارم که مشکل حل شده باشه . راستی یک سایت سرس کد آماده هم هست CODEPROJECT.COM از آماتور تا پیشرفته می تونی توش یاد بگیری . دوست دار پیشرفت شما
یک کتاب هم زمیمه کردم برای دانلود.

persian_bigboy
یک شنبه 21 شهریور 1389, 21:55 عصر
این هم ادامه کتاب

احمد سامعی
دوشنبه 22 شهریور 1389, 01:18 صبح
ببخشید اون وقت این گذاشتن کتاب چه ارتباطی به سوال ایشون داشت ؟
اگر می خواهید کتاب معرفی کنید اون هم درصورت رایگان بودنش باید تاپیک خودتون ایجاد کنید یا در تاپیک های مشابه موضوع مطرح کنید

persian_bigboy
سه شنبه 23 شهریور 1389, 08:38 صبح
ببخشید اون وقت این گذاشتن کتاب چه ارتباطی به سوال ایشون داشت ؟
اگر می خواهید کتاب معرفی کنید اون هم درصورت رایگان بودنش باید تاپیک خودتون ایجاد کنید یا در تاپیک های مشابه موضوع مطرح کنید

سلام دوست من ، من این کتاب رو گذاشتم تا مطالعه کنه و دیگر مشکل های ساده نداشته باشه . حالا که شما انقدر حرفه ای هستید . کمکشون کنید ./