PDA

View Full Version : انتخاب اتوماتیک User و Pass در Login شدن کاربر



++Hichkas
سه شنبه 10 مرداد 1391, 02:46 صبح
بسم رب المهدی(عج)
با سلام
میخواستم بدونم چطوری میتونم کاری کنم به جای اینکه کاربر User و Pass رو انتخاب کنه از مثلا شماره ملی به عنوان Pass و از اسمش برایuser باشه و از این طریق login بشه؟
با تشکر

mohsen_f_b
سه شنبه 10 مرداد 1391, 09:49 صبح
سلام

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

موفق باشید

++Hichkas
شنبه 14 مرداد 1391, 13:28 عصر
با سلام دوباره
برای login کردنتعیین کردم که مثلا شماره دانشجویی و اسم دانشجو برای login استفاده بشه اما با وارد کردن این اطلاعات ارور میده. ارورش مثل عکس پایین
90712

mohsen_f_b
شنبه 14 مرداد 1391, 14:11 عصر
سلام

مقدار متغییر ورودی هم خوانی نداره با پایگاه داده!

موفق باشید

++Hichkas
شنبه 14 مرداد 1391, 15:16 عصر
Userid رو از نوع int دادم و Name از نوع Nvarchar ورودی برا password رو name قرار دادم و برای Username مقدار useridاما وارد نمیشه البته از اول مشکل یه چیز دیگه بود اومدم اون حل کنم زدم چشمشم کور کردم و به این مشکل بر خوردم :اشتباه: حالا باید چیکار کنم؟:خجالت:

mohsen_f_b
شنبه 14 مرداد 1391, 15:20 عصر
سلام

لطفا قطعه کد و اسکریپت مربوط به لاگین را قرار دهید تا راحت تر به نتیجه برسید.

موفق باشید

++Hichkas
شنبه 14 مرداد 1391, 16:18 عصر
سلام
قطعه کد پایین برای logi هستش
من تازه کارم ایرادم زیاد و ابتدایی
ممنون از توجهتون

protected void Login1_Authenticate(object sender, AuthenticateEventArgs e)
{
bool flag = false;
SqlConnection myconn = new SqlConnection();
myconn.ConnectionString = "Data Source=.\\SQLEXPRESS;AttachDbFilename=|DataDirecto ry|\\UnivercityDatabase.mdf;Integrated Security=True;User Instance=True";
myconn.Open();
SqlCommand cmd1 = new SqlCommand();
cmd1.Connection = myconn;
cmd1.CommandText = "select * from student ";
// cmd1.Parameters.Add(@iduser,Login1.UserName );
//where '"idteacher=Login1.UserName"' and '" Password=Login1.Password"'";
//cmd1.ExecuteNonQuery();
//myconn.Close();
SqlDataReader dr = cmd1.ExecuteReader();
while (dr.Read())
{
flag = true;
Session.Add("name", dr[1].ToString() + " " + dr[2].ToString());
Session.Add("userid", dr[0].ToString());
}
if (flag)
Response.Redirect("~/profile.aspx");

}

++Hichkas
شنبه 14 مرداد 1391, 18:32 عصر
کد مشکلی داره؟
با تشکر

rana-writes
شنبه 14 مرداد 1391, 19:24 عصر
سلام
براتون يه نمونه كد لاگين ميذارم



اول يه استور پروسيجر مي نويسين:


CREATE PROCEDURE dbo.Fix_Login
(@UserName nvarchar(10),
@Pass nvarchar(10)
)
AS
BEGIN TRANSACTION

SELECT *
FROM Fix_Personal
WHERE (UserName = @UserName) AND (Pass = @Pass)


IF @@ERROR<>0
ROLLBACK TRANSACTION

ELSE
COMMIT TRANSACTION
GO




بعدم يه تابع كه تابع من توي كلاسي به اسم LoginDataAccess وجود داره:



public static SqlDataReader Login(string UserName, string Pass)
{
SqlConnection connection = Connection.ConnectToFix(); // من با استفاده از يه كلاس كانكشن ايجاد كردم، اينجا رو شما ميتونين به سليقه خودتون عمل كنين
SqlCommand command = new SqlCommand("Fix_Login", connection);
command.CommandType = CommandType.StoredProcedure;
command.Parameters.Add("@UserName", SqlDbType.NVarChar).Value = UserName;
command.Parameters.Add("@Pass", SqlDbType.NVarChar).Value = Pass;
SqlDataReader reader = command.ExecuteReader(CommandBehavior.SingleResult | CommandBehavior.CloseConnection);

return reader;
}



توي دكمه لاگين هم اينها رو مي نويسم:



using (SqlDataReader reader = LoginDataAccess.Login(TxtUser.Text, TxtPass.Text))
{
if (reader.Read())
{

string Name = Convert.ToString(reader["Name"]);
string LName = Convert.ToString(reader["LName"]);
// بعد از اينكه يوزرپسورد درست بود ميتونين مثلا يه فرم ديگه باز كنين يا پيام مناسب بدين به كاربر

}
else
{
LblMessage.Text = "نام کاربری یا پسورد اشتباه است";
TxtUser.Text = "";
TxtPass.Text = "";
}
}


موفق باشين