ورود

View Full Version : رفتن به فرم اصلی



nazaninebaba
دوشنبه 18 آذر 1387, 16:01 عصر
سلام به همه دوستان

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








Dim Da As New SqlClient.SqlDataAdapter("select username,password from users where username=" + txtusername.Text + " AND password=" + txtpassword.Text, conbank)

nazaninebaba
سه شنبه 19 آذر 1387, 20:17 عصر
با سلام
فکر میکنم تا حالا به این مشکل بر خوردید خیلی از فرم ها برای ورود نیاز به username password لطفا کمک کنید.

rooshan2008
سه شنبه 19 آذر 1387, 21:29 عصر
سلام
نمی دونم درست متوجه شدم یا نه با این حال..
من یکم مشغولم و دارم درس می خونم نمی تونم خوب جواب بدم اگه دوستان دیگه می تونن بهتر راهنمایی کنن.

اگر برای Sql server میخواید این کار رو بکنید من این نظر رو دارم :
برای ورود به سیستم یا در اینجا فرم شما از روشی که خودتون نوشتین می تونید da خودتون رو ببینید که رکوردی برگردونده یا نه اگه برگر دوند که درسته برای این کار هم می تونی .



dim dataTable1 as new Datatable
Da.fill(datatable1)
if datatable1.rows.count=1 then
بسم الله...
else
لعنت خدا بر جان شیطان...
end if


البته این روش که شما استفاده کردید چندان امن نیست چون کاربر فقدر در سطح برنامه شما برسی میشه و مجوز لازم رو برنامه شما به اون میده برای این کار بهتره داخل ConnectionString هم از مجوز ورودی خود Sql server هم استفاده کنید( خیلی بهتره )
مثال :به فرض کاربر Sql server به نام Sa وجود داره که در برنامه شما تعریف شده نیست واین کاربر در خود برنامه Sql server تمام مجوز های امنیتی رو دارد اما در برنامه شما فاقد اعتبار هست.شما در ابتدا با Connectionstring چک می کنید که قادر به کانکت شدن به Sql server هست یا نه. اگر بود حالا اون رو با دستور بالا که خودتون نوشتین داخل جدول کاربران خودتون ببنید اگر وجود داشت که مثل کد بالا

البته اون کد بالا رو من اجرا نگرفتم فکر هم نمی کنم اشتباه نوشته باشم

nazaninebaba
چهارشنبه 20 آذر 1387, 21:38 عصر
سلام مرسی از پاسختون
من در یکی از فرمام به این نکته توجه کردم فقط یک سوال برام پیش اومد بهتره که فرم اولی کهuser میبینه چی باشه یعنی بهتره که اول با فرمی روبه رو بشه که اطلاعات خودشو برای ارتباط با پایگاه داده وارد کنه یا اینکه ابتدا user name password وارد کن بعد بره در یک فرم دیگه اطلاعات مربوط به ارتباط باپایگاه داده وارد کنه.البته میشه اصلا username password وارد نکرد مستقیم بره اطلاعات مربوط به ارتباط باپایگاه داده وارد کنه
راستی کدی که گفتین جواب نداد
یه سوال اگر هر کسی برای خودش یه پایگاه داده داشته باشه وبرای connect شدن نیاز به این باشه که هر دفعه اطلاعاتو وارد کنه چطوری میشه کده اینو نوشت


Dim reader As StreamReader = _
New StreamReader("\Config.text") // in masir e oon Config file hast
Try
Do
Me.MyVar = reader.ReadLine

Catch

Finally
reader.Close()
End Try


از این کد باید استفاده کنیم ولی من نمیدونم زاثفخقه

rooshan2008
چهارشنبه 20 آذر 1387, 22:06 عصر
البته من سوالتون رو خوب متوجه نشدم.
من در برنامم این کار رو میکنم >>> کاربر وقتی برنامم رو اجرا کرد اول لودینگ بعد صفحه Login وبعد user name password رو وارد میکنه البته این کاربر که وارد میکنه باید هم برای اسکیول سرور تعریف شده باشه هم در برنامه من یعنی در برنامه من یه قسمت برای ساخت کاربر وجود داره مثلاً مدیر سیستم می یاد و نام و مشخصات و اسم کاربر و تمام تنظیمات درخواستی رو داخل فرم وارد و ثبت میکنه در فرایند ثبت ایجاد کاربر با نام درخواستی یک کاربر برای Sql server هم تعریف می کنه (یعنی هم در جدول user برنامه من و هم برای Sql server )

نمیدونم نوشته پایین سوال هست؟یا جوابه.


البته میشه اصلا username password وارد نکرد مستقیم بره اطلاعات مربوط به ارتباط باپایگاه داده وارد کنه


من Vb.net نصب نکردم وگرنه یک مثل براتون میزدم.
با تشکر

soroosh_i58
پنج شنبه 21 آذر 1387, 23:27 عصر
این کار رو بکن. یک bindingsource بر اساس جدولی که توش رمز و کلمه کاربری هست بساز و بعد از اون ین کار رو بکن.
فقط رکوردهایی از جدول را درون بایندینگ سورس بگذار که کلمه عبورشان و رمزشان درست وارد شده باشند. //

bindingsource1.filter="username=" & txtusername.text & " and " password=" & txtpassword.text
اگر تعداد رکوردهایی که بعد از فیلتر شدن درون بایندینگ سورس قرار میگیرد 0 باشد با دستور end از برنامه خارج میشود//


If bindingsource1.count=0 then
End
End if

nazaninebaba
سه شنبه 26 آذر 1387, 22:47 عصر
سلام مرسی از راهنماییتون
ولی من هنوز جواب نگرفتم اگر username به صورت combo باشه به این صورت که ما usernamo از combo انتخاب کنیم ولی passwordo وارد textbox کنیم الان چه پیشنهادی می کنید.
لطفا واضح توضیح دهید
متشکرم

rostamkhani
چهارشنبه 27 آذر 1387, 00:15 صبح
سلام
برای برسی UserName و Pass کاربرانی که در جدول Users ایجاد کردین بهتر از Stord Procedures استفاده کنید . پروسیجری که UserName و Pass پارامترهای ورودی و یک خروجی منطقی مثل 0 یا 1 .
میتونی از SqlCommand هم برای اجراش استفاده کنی .
یا
میتونید از همون دستور Sql که به DataAdapter دادین به SqlCommand بدین و با sqlCmd.ExecuteReader
اجرا و با SqlReader کار کنین .


SqlCommand sqlCmd = new SqlCommand();
sqlCmd.CommandText="select username,password from users where username=" + txtusername.Text + " AND password=" + txtpassword.Text;
sqlCmd.Connection = conbank;
SqlDataReader dr= sqlCmd.ExecuteReader();
if (dr.HasRows == true)
{
// OK
// برای خواندن مشخصات دیگر کاربر از این رکورد = Select * from ...
// dr.Read();
// string fullName = dr.GetString(3) + " " + dr.GetString(4);
}
else
{
// nOk
}

nazaninebaba
چهارشنبه 27 آذر 1387, 14:47 عصر
با سلام
خدمتتون عرض کردم username ه صورت combo هست .من تو جدول sers سه ستون دارم.
sername, password , userid این کدی که نوشتم یک مشکلی داره تو قسمت select . ممنون میشم راهنمایی کنید.






conbank = New SqlConnection(" Data Source=WSRV-SQL2K5;Initial Catalog=hamidi;Persist Security Info=True;User ID=amztest;Password=123")
conbank.Open()
databank = New DataSet
Dim Da As New SqlClient.SqlDataAdapter("SELECT password FROM users WHERE userid=" + ComboBox1.SelectedIndex, conbank)
Dim Dt As New DataTable
Da.Fill(Dt)
If Dt.Rows.Count = 1 Then
MessageBox.Show(".رمز شما درست مي باشد", MessageBoxButtons.OK, MessageBoxIcon.Information, MessageBoxDefaultButton.Button1)
Dim f As New form5
f.Show()
Else
MessageBox.Show(".رمز شما درست نمي باشد ", MessageBoxButtons.OK, MessageBoxIcon.Error)
End If

rostamkhani
چهارشنبه 27 آذر 1387, 22:29 عصر
سلام
فکر کنم اگر ComboBox رو بایند کرده باشید و DisplayMember و ValueMember ،
باید بجای ComboBox1.SelectedIndex از ComboBox1.SelectedValue استفاده کنید .

nazaninebaba
یک شنبه 01 دی 1387, 22:35 عصر
سلام
مرسی از جوابتون راه شما درسته. من وقتی از طریق binding مییام comboro درست میکنم selected value را هم درست میکنم. و از این طریق جواب گرفتم
منتها من می خوام comboro از طریق کد نویسی پر کنم همون طور که تو پاسخ قبلیم نوشتم اما به یک مشکل بر می خورم اینکه combobox1.selected value داخل چی بریزم نحوه نوشتن کدشو نمیدونم .
ممنون میشم اگر جواب بدید.

این کدیه که از طریق bind کردن combo درست جواب داد.


Dim Da As New SqlClient.SqlDataAdapter("SELECT password FROM [hamidi].[dbo].[users] WHERE username='" + ComboBox1.SelectedValue + "'", conbank)
Dim Dt As New DataTable
Da.Fill(Dt)
If Convert.ToBoolean(Dt.Rows.Count) = True Then
Dim f As New form5
f.Show()
Else
...