ساختن يك Login در ASP.net

Mafia

Member
آقا ببخشيد من همينطور دارم تاپيك ميزنما :oops:
يه سوال در مورد Login كردن افراد دارم ولي قبلش يه سوال ديگم دارم اونم اينه كه:
من به صورت كامل با كد زير به ديتابيس يك Row اظافه ميكنم:
کد:
		private void but_add_Click(object sender, System.EventArgs e)
		{
			DataRow dr = DS.Tables["login"].NewRow();
			dr["username"] = user.Text;
			dr["password"] = pass.Text;
			DS.Tables["login"].Rows.Add(dr);
			DA.Update(DS);
			DataGrid1.DataBind();
		}
حالا ميخوام وقتي كه 2 نفر 2 تا Username يكسان در user.text وارد كردند Label1 بنويسه كه بايد يك Username ديگر وارد كنيد (به اين صورت كه به ديتابيس SQL Server وصل بشه و چك كنه) :idea:

بعد در مورد لاگ اين كردن هم همينطور ميخواستم بدونم چطوري ميشه يك Login ساده ساخت كه افراد وقتي Username ، Password شونو ميزنن اونو با يك ديتابيس در SQL Server چك كنه؟
بسيار ممنون :wink:
 

omidak

Active Member
سلام:
من بهت 1 توصیه میکنم...
اونه که از DataCommand برایه کارهات استفاده کن...
یک بار 1 مقاله دادی در مورد بود كه Sample میخواستی... که گفتی C# رو برات بنویسم ببخشید من VB کارم و شرمنده که نتونستم کمک ات کنم...
اما DataCommand دیگه همونه...
تو با Data Command میتونی هر کاری رو خیلی قشنگ انجام بدی...
چون 1 خورده C# بلدم سعی میکنم 1 چیزایی بهت بگم ... اگه اشتباه بود ببخشید :wink: :
اول تویه Using اینها رو اضافه کن:
کد:
using System.Data.SqlClient;
using System.Data;
و بعد در but_add_Click اینها رو بنویس:
کد:
			String SQLStr = "Select username From Login Where username=" + user.Text;
			SqlConnection Conn=new SqlConnection("ConnectionString");
			SqlDataAdapter DA=new SqlDataAdapter(SQLStr,Conn);
			DataSet DS=new DataSet();
			DA.Fill(DS,"UserCheck");
			if (DS.Tables("UserCheck").Rows.Count > 0){
				user.Text="this username alrady is tackered";
			}
			else{
				SQLStr = "INSERT INTO Login(username, password) Values('" + user.Text + "', '" + pass.Text + "')";
				SqlDataAdapter DA=new SqlDataAdapter(SQLStr,Conn);
				DA.Fill(DS,"UserAdded");
			}
			Conn.Close;
اگر هم اشتباه و اینا داشت به بزرگی خودت ببخش :wink: :oops:
 

raincoat

New Member
این کدی که امید نوشته خیلی عالیه ، از همین روش باید استفاده کنی . البته یه کوچولو ریزه کاری های C# رو بايد براش عوض کنی مثل:
کد:
 if (DS.Tables("UserCheck").Rows.Count > 0){
که باید از آکولاد استفاده بشه نه پرانتز : )
کد:
  if (DS.Tables["UserCheck"].Rows.Count > 0){

ولی روش درست و کلی همینه . اصلا خوبی این دات اینه که بیسیکش با سی شارپش فرق زیادی ندارند . تو مبحث های خیلی پیچیده و پیشرفته فرقشون مشخص میشه نه اینجورجاها. یه Try و Catch هم همیشه بنداز تنگش که یوزر Error رو نبینه ضایه شی :)
برای درست کردن Login هم n تا روش هست ، من این یکی رو از MSDN امتحان کردم از همه ساده تر و به طبع بی خاصیت تره ولی امنیتش خیلی بالاست . 6 تا لینک هست از همون بقل نگاه کن که مراحل ساخت رو روی هر صفحه آموزش میده ، این از یک فایل XML استفاده کرده و تغییر دادنش به SQL کارخیلی راحتیه. C# هم هست.
Msdn
 

Mafia

Member
آقا ممنون از 2تا تون!
ولي من با اين كدي كه دادين مشكل پيدا كردم!

حالا من با يه روش ديگه خواستم لاگ اين كنم يعني پايين:
کد:
	private void LoginBut_Click(object sender, System.EventArgs e)
		{
			DA.Fill(DS);
			bool found = false;
			foreach(DataRow dr in DS.Tables["users"].Rows) 
			{
				if (dr["username"].ToString().ToLower().Trim().Equals(user.Text.ToLower().Trim()))
				{
					if (dr["password"].ToString().Equals(pass.Text))
					{
						found = true ;} break;}
			}
			if (found) 
			{
				Label1.Text="Thank Your For Login";
			}
			else 
			{
				Label1.Text="Invalid Username or password";
			}
		}
ولي بازم مشكل داره چون همش ليبل رو = Invalid قرار ميده
كسي ميدونه مشكل كد بالا چيه؟ :wink:
 

omidak

Active Member
سلام: :D
حالا ما هر چي ميگيم بيخيال اين روش شو... نميشي كه :D :p
شرمنده من با WebForm کار نکردم... شرمنده :oops: :wink:
اما روش اصلی و سریع و راحت تر همونه :wink:
ببخشید که نتونستم کمک ات کنم... اما اون کدی که نوشتم مشکلی نداشت... :wink: امتحان اش کردم :wink:
 

Mafia

Member
باشه آقا مشكل 2 تا فرم حل شد!
فقط ميمونه اينكه وقتي طرف هويتش تاييد شد براي شه Session ساخته بشه!
حالا چطوي ميشه Session ساخت؟
 

omidak

Active Member
سلام:
تویه اون کد بالا که بهت دادم اون بخشی که Check میکنه همچین user ای وجود داره یا نه... از اون میتونی به عنوان چک کردن User و Pass هم استفاده کنی... :wink:
من اینو میتونم بهت راهنمایی کنم... :wink:
 

Mafia

Member
اميدك جان راستي ببخشيد يه اشتباه شد!
كدي كه شما دادي براي رجيستر كردن يه يوزر بود ولي من منظورمLogin كردن بود!
 

omidak

Active Member
سلام:
اينو ميگم :wink:
کد:
         String SQLStr = "Select username From Login Where username=" + user.Text; 
         SqlConnection Conn=new SqlConnection("ConnectionString"); 
         SqlDataAdapter DA=new SqlDataAdapter(SQLStr,Conn); 
         DataSet DS=new DataSet(); 
         DA.Fill(DS,"UserCheck");
فرقي نميكنه... اگه User باشه... در اون Table ای که بهش Fill کردی Save میشه... :wink:
پس اگر Count بالا 0 بشه یعنی User هست... و اگر در Rows(0) اونو با Item("Pass") چک کنی و اگر UserPass درست بود... قبول بشه و در Session قرار بگیره :wink:
امیدوارم که متوجه شده باشی... :wink:
 

جدیدترین ارسال ها

بالا