PDA

View Full Version : مشکل در Password Recovery



Arezoo62
چهارشنبه 10 اسفند 1390, 12:33 عصر
دوستان من تو سایتم از دیتا بیس و کدهایی استفاده کردم که خودم نوشتم.
اما تو قسمت "کلمه عبور را فراموش کردم" سایتم دچار مشکل هستم برای همین می خواهم از PasswordRecovery خود vs استفاده کنم. می خواهم بدونم امکان پذیر هست؟ و اگه هست چه جوری؟

fakhravari
چهارشنبه 10 اسفند 1390, 12:46 عصر
خودتون نوشتید یعنی از ممبر شیپ استفاده نکردید.
فکر کنم PasswordRecovery vs برای ممبر شیپ است.
برای اون کارتون نمیتوانید استفاده کنید

EnKamran
چهارشنبه 10 اسفند 1390, 13:06 عصر
خیر شما نمیتونید از اون استفاده کنید، کاری نداره که شیوه کار شما به چه صورته برای ریکاوری ؟

Arezoo62
چهارشنبه 10 اسفند 1390, 13:41 عصر
دوست عزیز من می خواهم اگه این شرط بر قرار بود (کدش و نوشتم) پسوورد کاربر نمایش داده بشه (تو این مشکل دارم)
if (txtQues.Text == "" || DropDownList1.Text == "یک سوال را انتخاب کنید")
{
Label1.Text = "خطا - سوال امنیتی را انتخاب کرده و پاسخ سوال را وارد کنید";
}
else
{
if (CheckUserNameAndPasswordMach(txtUser.Text, txtEmail.Text, DropDownList1.Text, txtQues.Text))
{
Label1.Text = "نمایش پسوورد";
//*****************
txtEmail.Text = "";
txtQues.Text = "";
txtUser.Text = "";
DropDownList1.Text = "یک سوال را انتخاب کنید";
Button1.Enabled = false;
Timer1.Enabled = true;
}

else
{
Response.Redirect("Error404.htm");
}
}

EnKamran
چهارشنبه 10 اسفند 1390, 13:58 عصر
اولا که شما برای دسترسی به تکست دراپ داون لیست به این صورت عمل کنید : DropDownList1.SelectedIte.Text
بعدم اینکه کدهای چک کردن رو بذارید اینا که 2 تا شرطه
من نمیدونم الان مشکل شما چیه اما یه حدثی میزنم : مشکل اینه که بعد از این که شرط درست بود پسوورد رو چطور از بانک توی لیبل بذارید ؟
اگر مشکل اینه که خوب سرچ کنید پسووردی که یوزرنیمش txtUser.Text هست رو نمایش بدید

Arezoo62
چهارشنبه 10 اسفند 1390, 15:02 عصر
دقیقا مشکلم همونیه که گفتید
می خواهم پسوورد تو label1 نمایش داده بشه

fakhravari
چهارشنبه 10 اسفند 1390, 15:50 عصر
فکر نکنم بشه پسورد ببینید.
چون اینها hash میشوند.
برای change شدن پسورد
using System.Web.Security;
TextBox2.Text = Membership.Provider.ResetPassword(TextBox3.Text.Tr im(), "پرسش کلمه امنیتی");

Arezoo62
چهارشنبه 10 اسفند 1390, 16:03 عصر
جواب سوالم این بود؟!

EnKamran
چهارشنبه 10 اسفند 1390, 17:06 عصر
مهندس چرا میپیچونی بنده خدا رو.
شما ببینید یه متد نوشتید "CheckUserNameAndPasswordMach" که یه کاری انجام میده حالا هرچی، پس بلدی بنویسی، حالا یه همچین چیزی بنویس مثل "ShowPassByUserName" که نام کاربری رو میگیره و پسوورد رو برمیگردونه :


public string ShowPassByUserNamestring username)
{
// Dastourate Vasl Shodan Be DB Va Vakeshie YEk Record Az Jadvale Karbaran Ke UserName esh Barabare 'username' Bashe
password = // Natije Query Ke Neveshtid
return password;
}

حالا :

lbPassword.Text = ShowPassByUserName(txtUserName.Text);

Arezoo62
چهارشنبه 10 اسفند 1390, 17:20 عصر
مهندس چرا میپیچونی بنده خدا رو.
شما ببینید یه متد نوشتید "CheckUserNameAndPasswordMach" که یه کاری انجام میده حالا هرچی، پس بلدی بنویسی، حالا یه همچین چیزی بنویس مثل "ShowPassByUserName" که نام کاربری رو میگیره و پسوورد رو برمیگردونه :


public string ShowPassByUserNamestring username)
{
// Dastourate Vasl Shodan Be DB Va Vakeshie YEk Record Az Jadvale Karbaran Ke UserName esh Barabare 'username' Bashe
password = // Natije Query Ke Neveshtid
return password;
}

حالا :

lbPassword.Text = ShowPassByUserName(txtUserName.Text);


دوست عزیز کل کدهام اینجاست میشه دقیقا بگید چیکار کنم
using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Data;
using System.Data.SqlClient;
using System.Web.Security;
using System.Configuration;

public partial class ForgetPassword : System.Web.UI.Page
{
SqlConnection con = new SqlConnection(ConfigurationManager.ConnectionStrin gs["FarslaneDataBaseConnectionString"].ConnectionString);
SqlCommand cmd;
protected void Page_Load(object sender, EventArgs e)
{
txtUser.Focus();
}
protected void Button1_Click(object sender, EventArgs e)
{
if (txtQues.Text == "" || DropDownList1.Text == "یک سوال را انتخاب کنید")
{
Label1.Text = "خطا - سوال امنیتی را انتخاب کرده و پاسخ سوال را وارد کنید";
}
else
{
if (CheckUserNameAndPasswordMach(txtUser.Text, txtEmail.Text, DropDownList1.Text, txtQues.Text))
{
Label1.Text = "OK";
//*****************
txtEmail.Text = "";
txtQues.Text = "";
txtUser.Text = "";
DropDownList1.Text = "یک سوال را انتخاب کنید";
Button1.Enabled = false;
Timer1.Enabled = true;
}

else
{
Response.Redirect("Error404.htm");
}
}
}
private Boolean CheckUserNameAndPasswordMach(string UserName, string Email, string Question, string Respond)
{
cmd = new SqlCommand();
cmd.CommandType = CommandType.Text;
cmd.CommandText = "Select Count(*) from [Register] where UserName = @UserName and Email = @Email and Question = @Question and Respond = @Respond";
cmd.Parameters.AddWithValue("@UserName", UserName);
cmd.Parameters.AddWithValue("@Email", Email);
cmd.Parameters.AddWithValue("@Question", Question);
cmd.Parameters.AddWithValue("@Respond", Respond);
cmd.Connection = con;
if (con.State != ConnectionState.Open)
{
con.Open();
}
int RetVal = Convert.ToInt32(cmd.ExecuteScalar());
con.Close();
if (RetVal == 0)
{
return false;
}
else
{
return true;
}
}


protected void Timer1_Tick(object sender, EventArgs e)
{
Label1.Text = "با تشکر از شما کاربر گرامی";
Timer1.Enabled = false;
Button1.Enabled = true;
}
}

Arezoo62
چهارشنبه 10 اسفند 1390, 18:10 عصر
فایل دانلود

sarapepors
چهارشنبه 10 اسفند 1390, 21:48 عصر
به جای این که boolean برگردونید چرا string برمیگردونید خوب مواردی رو که به عنوان پارامتر دریافت میکنید به رکوردهای موجود در دیتابیس تطبیق میدین و بعدش هم پس ورد رو برمیگردونید:


private string CheckUserNameAndPasswordMach(string UserName, string Email, string Question, string Respond)
{
cmd = new SqlCommand();
cmd.CommandType = CommandType.Text;
cmd.CommandText = "Select Count(*) from [Register] where UserName = @UserName and Email = @Email and Question = @Question and Respond = @Respond";
cmd.Parameters.AddWithValue("@UserName", UserName);
cmd.Parameters.AddWithValue("@Email", Email);
cmd.Parameters.AddWithValue("@Question", Question);
cmd.Parameters.AddWithValue("@Respond", Respond);
cmd.Connection = con;
if (con.State != ConnectionState.Open)
{
con.Open();
}
SqlDataReader dr = cmd.ExecuteReader();
if (dr.HasRows)
{
while (dr.Read())
{
Password = dr["Password"].ToString();
}
}

con.Close();
return Password;
}