خیلی وقتها لازم هست که برای حفظ امنیت برنامه هایی که طراحی میکنیم فرم ورودی رو طراحی کنیم تا کاربر با استفاده از نام کاربری و رمز عبور وارد برنامه بشه
ولی مراحل ساخت این نوع فرم در سی شارپ به چه صورت هست؟ در زیر سعی می کنیم تا مراحل ساخت یک فرم ورود با استفاده از زبان برنامه نویسی سی شارپ و بانک اطلاعاتی SQL Server، Access 2007 و Access 2003 رو به ساده ترین شکل ممکن توضیح بدیم
برای ساخت فرم ورود ابتدا دو تکست باکس با نام های username و password به برنامه اضافه میکنیم. سپس یک دکمه با نام login اضافه می کنیم
به بانک اطلاعاتی مراجعه کرده و جدولی در بانک اطلاعاتی مربوطه با نام users ایجاد کرده و فیلدهای id، username و password ایجاد میکنیم
سپس بر روی دکمه login کلیک کرده و وارد محیط برنامه نویسی آن شده و کد های زیر را وارد میکنیم
SqlConnection con = new SqlConnection("Data Source=localhost;Initial Catalog=DATABASE_NAME;Integrated Security=True"); SqlCommand com = new SqlCommand(); int i = 0; try { if ((username.Text == string.Empty) || (password.Text == string.Empty)) { MessageBox.Show("لطفا نام کاربری و رمز عبور را وارد کنید", "خطا",MessageBoxButtons.OK,MessageBoxIcon.Error); return; } com = new SqlCommand("SELECT COUNT(*) FROM users WHERE username= '" + username.Text + "' AND password= '" + password.Text + "'", con); if (con.State == ConnectionState.Closed) { con.Open(); i = (int)com.ExecuteScalar(); }//end if con.Close(); if (i > 0) { main form = new main(); form.Show(); } else MessageBox.Show("نام کاربری و یا رمز عبور اشتباه می باشد", "خطا", MessageBoxButtons.OK, MessageBoxIcon.Error); } catch (Exception ex) { MessageBox.Show(ex.Message.ToString()); } finally { i = 0; con.Close(); }
در کد بالا ابتدا مقادیر تکست باکس ها را بررسی می شوند و در صورت خالی بودن، پیامی به کاربر با عنوان “لطفا نام کاربری و رمز عبور را وارد کنید” نمایش داده می شود. در صورت خالی نبودن تکست باکس ها برنامه تعداد رکوردهایی که مقادیر username و password آنها با تکست باکس های مربوط یکسان است مورد شمارش قرار داده و خروجی را در متغیر i قرار می دهد. در صورتی که مقدار متغیر i بزرگتر از ۰ باشد فرم اصلی برنامه نمایش داده می شود، در غیر این صورتی پیامی مبنی بر اشتباه بودن نام کاربری و یا رمز عبور به کاربر نمایش داده می شود.
این آموزش در بانک های اطلاعاتی Access 2003 , 2007 نیز قابل استفاده می باشد. برای استفاده در محیط این نوع بانک های اطلاعاتی کدهای مربوطه را با خط زیر در کد بالا تعویض نمائید.
کد مربوط به SQL Server
(استفاده شده در کد بالا)
SqlConnection con = new SqlConnection("Data Source=localhost;Initial Catalog=DATABASE_NAME;Integrated Security=True"); SqlCommand com = new SqlCommand();
کد مربوط به Access 2007
OleDbCommand con = new OleDbCommand("Provider=Microsoft.ACE.OLEDB.12.0;Data Source=D:\DATABASE_NAME.mdb"); OleDbCommand com = new OleDbCommand();
کد مربوط به Access 2003
OleDbCommand con = new OleDbCommand("Provider=Microsoft.Jet.OLEDB.4.0;Data Source=D:\DATABASE_NAME.mdb"); OleDbCommand com = new OleDbCommand();
توجه داشته باشید که نام کاربری و رمز عبور فقط یکبار به صورت مشابه در بانک اطلاعاتی قرار می گیرد به همین دلیل پس از بررسی، خروجی ۰ یا ۱ خواهد بود
درود بر شما
سپاس واسه اموزش خوبتون
سربلند باشید
سلاااام خیلی عالی بود سایتتون
منم خیلی علاقه دارم یه سری سوالا داشتم ممنون میشم ایمیلتون رو داشته باشم و ازتون بپرسم که چه جوری شروع کنم و ….
سلام
از طریق فرم تماس در ارتباط باشید
https://www.prodev.ir/contact-us
داداش خدا خیرت بده ی هفته بود دنبال این کد میگشتم
سلام من یه برنامه لازم دارم که وقتی برنامه رو سه بار رمز رو اشتباه زدی صدای اژیر بده تا یه دکمه رو نزدی قطع نشه مثلا دکمه escمیتونین کمکم کنین درست کنم یا نه لطفا به ایمیل که دادم جواب بدین ممنون میشم یه دنیا ممنون
ممنونم و خسته نباشید
مرسییییییی
سلام توروخدا چرا عکس و اینجوری گذاشتین(ساخت فرم ورود با سی شارپ)؟ نصفش نیافتاده لطفا کامل بزارین ممنون
عکس؟ تزئینی هست، مهم کد هست که کامل و تست شده هست
خب کدها کجا هستن؟
همون بالا کد کامل + توضحیات قرار داده شدن
با سلام و ممنون از آموزش کاملتون اگه میشه نحوه ساخت فرم ورود با ;LinQ و یا با خطوط کد کمتر هم آموزش بدین ممنونم
سلام، من هنوز با Linq کار نکردم، ولی این کد تا حد امکان کوتاه شده، تقریبا خطایی هم نداره، ولی چشم اگه کد کوتاه تری تونستم تهیه کنم قرار میدم
واقعا مرسی
تنها مشکل برنامم همین بود، یه هفته دنبالش بودم مرسی
خواهش دوست عزیز
سلام
میشه اموزش بدید کاری کنم که یوزرنیم و پسورد به ایمیلی ارسال بشه؟
مانند یک صفحه ثبت نام عمل کنه
درستش اینه پسورد رو با الگوریتم رمز کنید و در دیتابیس ذخیره کنید
ارسالشم برای کاربر فک نکنم کار درستی باشه از نظر امنیتی
در هر حال برای ارسال ایمیل سعی میکنم آموزشی قرار بدم
با سلام وعرض خسته نباشید سایت خیلی جالبیه انشاالله که همیشه موفق وموید یاشید
با سلام و سپاس
موفق باشید
سلام من وقتی کد را مینویسم به sqlconnection و sqlcommand ایراد میگیره
سلام
کد بالا رو اضافه کردید؟
using System.Data.SqlClient;
سلام
واقعا دستت درد نکنه..
حالا اگه من بخوام که وقتی به فرم main میره فرم login بسته شه باید چیکار بکنم؟؟
هر کار میکنم یا هر دو فرم بسته میشه یا اصن بسته نمیشه
ممنون میشم جواب بدی
سلام خسته نباشید
من مشکلی تو کد نویسی ندارم
میخواستم فقط شکل ظاهری ک درست کردین بدونم چطور درست کردین منظور text box اینا نیست منظورم مثلا بک گراندی ک درست کردین براش اونو توضیح بدین ممنون میشم
ادرس ایمیلمو میزارم rostamiali28@gmail.com
سلام
تصویر تزئینی هست
ولی فک کنم بتونید با طراحی یه تصویر و قرار دادن به عنوان تصویر زمینه فرم مشکلتون حل بشه
دستتون درد نکنه خیلی مفید بود اگه میشه درباره ی زیباسازی در فرم سی شارپ هم آموزش بزارید ممنون
با سلام ببخشید میخواستم بدونم این قطعه کد باید همینطوری استفاده بشه؟
“SELECT COUNT(*) FROM users WHERE username= ‘”
خسته نباشید ممنون به خاطر
این مطالب مفید
اگر بخواهیم یوزرنیم وپسوارد را تغیر داد
ازچه کدهایی باید استفاده کرد
میتونید یه فرم تغییر پسورد طراحی کنید که کاربر بعد از ورود به برنامه بتونه پسورد رو تغییر بده، کد خاصی هم نیست، همون کد ساده اپدیت رکورد که همیشه استفاده میشه
خسته نباشید مرسی به خاطر این مطالب مفید
سلام.ممنون بابت مطالب و وبسایت زیبایی
که دارید
سلام.خواستم بابت وبسایت خوبتون ازتون تشکر کنم و امیدوارم باعث ایجاد
انگیزه براتون بشه
سلام میشه به منم کمک کنید ؟
من برای اینکه به مقادیر دیگه جدول کابر دسترسی پیدا کنم اومدم یک کلاس تعریف کردم و چند تا متغیر از نوع public static داخلش نوشتم
داخل فرم لاگین زمانی که مشخص میشه این کاربر با همین پسورد وجود داره اومدم مقداردهی کردم اما نمیدونم کجا مشکل داره متغییر هایی که تو کلاس تعریف رکده بودم داینامیک نمیشن و همینطور ثابت موندن
برنا مم تو wpf وسخته که راه حلی براش پیدا کنم
ممنون میشم کمکم کنید
کد کلاس :
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace Baygani
{
public static class PublicVariable
{
public static string uusername = “”;
public static string uuserlastanme = “”;
public static int uuserid;
public static Boolean Flagg=true;
}
}
و کد مربوط به لاگین :
SHA256CryptoServiceProvider sha2 = new SHA256CryptoServiceProvider();
Byte[] B1;
Byte[] B2;
B1=UTF8Encoding.UTF8.GetBytes(txt_pw.Password.Trim());
B2 = sha2.ComputeHash(B1);
string Userpasswordhashed = BitConverter.ToString(B2);
/////////////////////////////////////////////////////////////
var query = from U in db.Users
where U.Username == txt_user.Text.Trim()
where U.Password == Userpasswordhashed
select U;
var user = query.ToList();
////////////////////////////////////////////////////////////////
if(user.Count==1)
{
RegistryKey Usernamekay = Registry.CurrentUser.CreateSubKey(“Software\\Baygani”);
Usernamekay.SetValue(“UsernameRegester”, txt_user.Text.Trim());
PublicVariable.uusername = user[0].Name;
PublicVariable.uuserlastanme = user[0].Lastname;
PublicVariable.uuserid = user[0].id;
PublicVariable.Flagg = user[0].flag;
}
this.Hide();
new win_main().ShowDialog();
سلام ببخشید میتونید یه کتابخانه یا داروخانه معرفی کنید که با سی شارپ نوشته شده باشه
باسلام وخسته نباشید ، من login کاربر رو برای برنامه ای که در visual stadio با برنامه نویسی #C که نوشتم می خوام اگه میشه راهنمایی کنید به جای این دستور چی بزارم ممنون میشم C#
SqlConnection con = new SqlConnection(“Data Source=localhost;Initial Catalog=DATABASE_NAME;Integrated Security=True”);
SqlCommand com = new SqlCommand();
1
2
SqlConnection con = new SqlConnection(“Data Source=localhost;Initial Catalog=DATABASE_NAME;Integrated Security=True”);
SqlCommand com = new SqlCommand();
سلام من در یک پروژه مشکل دارم کد یک فرمم پاک شده
سلام آقا سامان ممنون از مطلب خیلی خوبتون من یه مشکلی دارم اونجایی که از تابع mainاستفاده شده رو وقتی نوشتم ایراد گرفت ازم لطفا راهنمایی کنید 😁