PDA

View Full Version : سوال: مشکل در کد ورود کاربر



ahmad14.h
یک شنبه 07 شهریور 1389, 23:50 عصر
سلام
این کد چه مشکلی داره ؟
جاش چه کدی استفاده کنم





string constr = "Data Source=.\\SQLEXPRESS;Initial Catalog=r;Integrated Security=True";
SqlConnection scon = new SqlConnection(constr);
scon.Open();
string selectcmd = "select * from r";
SqlCommand selmd = new SqlCommand(selectcmd, scon);
SqlDataAdapter sdr = selmd.ExecuteReader();
if (sdr.HasRows)
{
sdr.read():
if(text1.text==sdr["username"].tostring())
if(text2.text==sdr["username"].tostring())
{
);"....RESPONSE.redirect("page
}

صادق صدقی
دوشنبه 08 شهریور 1389, 06:14 صبح
سلام
این کد چه مشکلی داره ؟
جاش چه کدی استفاده کنم





string constr = "Data Source=.\\SQLEXPRESS;Initial Catalog=r;Integrated Security=True";
SqlConnection scon = new SqlConnection(constr);
scon.Open();
string selectcmd = "select * from r";
SqlCommand selmd = new SqlCommand(selectcmd, scon);
SqlDataAdapter sdr = selmd.ExecuteReader();
if (sdr.HasRows)
{
sdr.read():
if(text1.text==sdr["username"].tostring())
if(text2.text==sdr["username"].tostring())
{
);"....RESPONSE.redirect("page
}




این جور که نوشتی از کانکشنته!!!!

و اگر اشتباه نوشته بودی از SqlDataAdapter نیازی نیست
SqlDataReader بهتره

hamidre13
دوشنبه 08 شهریور 1389, 08:15 صبح
بهتره بجای اینکه مستقیما با دیتا بیس کار کنی از استور پروسیجر استفاده کنی ، همچنین کانکشن استرینگ رو هم در وب کانفیگ قرار بدی بهتره!
در ضمن برای چک کردن یوزر و پسورد هم اینطور بنویس:

select * from users where user=@us and password = @pss
حالا این دستور رو رید کن اگر صحیح بود یعنی یوزر وجود داره و اگر هم نبود یعنی یوزرنیم و پسورد اشتباه هست!

ahmad14.h
دوشنبه 08 شهریور 1389, 08:31 صبح
بهتره بجای اینکه مستقیما با دیتا بیس کار کنی از استور پروسیجر استفاده کنی ، همچنین کانکشن استرینگ رو هم در وب کانفیگ قرار بدی بهتره!
در ضمن برای چک کردن یوزر و پسورد هم اینطور بنویس:

select * from users where user=@us and password = @pss
حالا این دستور رو رید کن اگر صحیح بود یعنی یوزر وجود داره و اگر هم نبود یعنی یوزرنیم و پسورد اشتباه هست!

ممنون که راهنمایی کردید. راستش من تازه کارم روش دیگه رو برام توضیح میدین؟
کدش چجوریه؟
یه سوال دیگه این pass و us چیه؟ همون ورودیه؟
مرسی

hamidre13
دوشنبه 08 شهریور 1389, 10:57 صبح
داخل منیجمنت استادیو اسکیو ال سرور دیتابیست رو باز کن(علامت مثبت کنار دیتابیس رو می گم)
از قسمت programmability گزینه استور پروسیجر رو انتخاب و روش راست کلیک کن و nem stored procedurs رو انتخاب کن یک صفحه کوئری مثل شکل زیر برات باز می شه:
خب حالا مقادیر رو جایگزین کن :
1. در این قسمت باید اسم استور پروسیجر رو بنویسی مثلا :logincheack

<Procedure_Name, sysname, ProcedureName>
2. در این قسمت باید پارامتر های که قرار است توی پروسیجر استفاده بشن استفاده کنی: مثلا :

@us nvarchar(max),
@pass nvarchar(max)

<@Param1, sysname, @p1> <Datatype_For_Param1, , int> = <Default_Value_For_Param1, , 0>,
<@Param2, sysname, @p2> <Datatype_For_Param2, , int> = <Default_Value_For_Param2, , 0>

3. در این قسمت هم باید اس کیو ال کوئری رو قرار بدی :
select * from users where user=@us and password = @pss

SELECT <@Param1, sysname, @p1>, <@Param2, sysname, @p2>
حال استور پروسیجر باید مانند شکل دوم شده باشه!:خجالت:

hamidre13
دوشنبه 08 شهریور 1389, 11:02 صبح
برای کاننکت شدن به دیتابیس هم از دستور زیر استفاده کن:

SqlConnection nw = new SqlConnection();
nw.connectionstring = ;
nw.Open();
SqlCommand cmd = new SqlCommand();
cmd.Connection = nw;
cmd.CommandText = "logincheack";
cmd.CommandType = CommandType.StoredProcedure;
cmd.Parameters.AddWithValue("@usname", usernametxtbx.Text.ToLower());
cmd.Parameters.AddWithValue("@pass", passtxtbx.Text.ToLower());
SqlDataReader red = cmd.ExecuteReader();
if (red.Read())
{
Response.Redirect("user.aspx");
}

abbas.oveissi
پنج شنبه 09 دی 1389, 13:07 عصر
برای کاننکت شدن به دیتابیس هم از دستور زیر استفاده کن:

SqlConnection nw = new SqlConnection();
nw.connectionstring = ;
nw.Open();
SqlCommand cmd = new SqlCommand();
cmd.Connection = nw;
cmd.CommandText = "logincheack";
cmd.CommandType = CommandType.StoredProcedure;
cmd.Parameters.AddWithValue("@usname", usernametxtbx.Text.ToLower());
cmd.Parameters.AddWithValue("@pass", passtxtbx.Text.ToLower());
SqlDataReader red = cmd.ExecuteReader();
if (red.Read())
{
Response.Redirect("user.aspx");
}

خب دوست من منظور شما اینه فقط برای یوزر چک کردن از استورپروسجر ها استفاده کنیم یا کلا تمام کار با دیتابیس رو از این روش بریم و توو برنامه کوئری ننویسیم ؟؟؟؟ بعدش هم بگو چه مزیتی داره این کار ؟؟
دست گلت درد نکنه

hamidre13
پنج شنبه 09 دی 1389, 15:44 عصر
تا اونجایی که من اطلاع دارم این کار باعث میشه که از اینجکت شدن سایتتون توسط اس کیو ال اینجکشن ها جلوگیری بشه!
به نظر من تا می تونی از استور پروسیچر استفاده کن چون هم امن تره و هم کدت تمیز تر میمونه!!
حالا اگر می خوای امنیت خیلی بیشتر بشه می تونی از linq استفاده کنی!
در ضمن یه موضوع جالب این تاپیک مربوط به شهریور هست!!!!:قهقهه::قهقهه::قهقهه::ق قهه::قهقهه::قهقهه::قهقهه::قه هه: