نمایش نتایج 1 تا 11 از 11

نام تاپیک: فرم لاگین با سطح دسترسی

  1. #1
    کاربر دائمی آواتار ghasem110deh
    تاریخ عضویت
    اردیبهشت 1393
    محل زندگی
    تهران
    پست
    1,148

    فرم لاگین با سطح دسترسی - معماری سه لایه

    آموزش طراحی فرم لاگین با سطح دسترسی با تکنولوژی ADO.net
    منبع (فیلم آموزشی از لرن فایلز)

    طراحی جدول (User)
    درون بانک (اینجا sql) به فیلدهای زیر نیاز است : (در گزینه های از نوع bit مقدار - true و یا false ذخیره میشود)
    عکس های ضمیمه عکس های ضمیمه
    آخرین ویرایش به وسیله ghasem110deh : پنج شنبه 27 شهریور 1393 در 19:54 عصر

  2. #2
    کاربر دائمی آواتار ghasem110deh
    تاریخ عضویت
    اردیبهشت 1393
    محل زندگی
    تهران
    پست
    1,148

    نقل قول: فرم لاگین با سطح دسترسی

    در ادامه اضافه کردن یک کلاس جدید به پروژه (اینجا DataAccess)
    در واقع کلاس DataAccess لایه اول در این پروژه است ...
    .
    .
    .
    ابتدا ایجاد دستورات sql و ایجاد dataAdapter :

    SqlConnection con;
    SqlCommand com;
    SqlDataAdapter da;

    public DataAccess()
    {
    con = new SqlConnection();
    com = new SqlCommand();
    da = new SqlDataAdapter();
    com.Connection = con;
    da.SelectCommand = com;
    }


    حال ایجاد متد اتصال و قطع آن (اینجا Connect و Disconnect)

    public void Connect()
    {
    if (con.State != ConnectionState.Open)
    {
    con.ConnectionString = @"Data Source=.;Initial Catalog=Test;Integrated Security=True";
    con.Open();
    }
    }

    public void Disconnect()
    {
    con.Close();
    }


    ایجاد متد دستورات (query) :

    public void Execute(string SQL)
    {
    com.CommandText = SQL;
    com.ExecuteNonQuery();
    }


    و در آخر ، ایجاد dataTable :

    public DataTable SELECT(string SQL)
    {
    DataTable dt = new DataTable();
    com.CommandText = SQL;
    da.Fill(dt);
    return dt;
    }


    البته جهت یادآوری : میبایست فضای Data.sqlClient را فراخوانی کنید (using) !
    آخرین ویرایش به وسیله ghasem110deh : پنج شنبه 27 شهریور 1393 در 19:55 عصر

  3. #3
    کاربر دائمی آواتار ghasem110deh
    تاریخ عضویت
    اردیبهشت 1393
    محل زندگی
    تهران
    پست
    1,148

    نقل قول: فرم لاگین با سطح دسترسی

    ایجاد کلاس (در اینجا Users) ... یا در واقع لایه دوم برنامه :

    گفته شد که در فیلدهای نوع bit مقادیر true یا false قرار میگیرد ... که در واقع بیان کننده سطح دسترسی هر کاربر هستند !
    بدین صورت که اگر هر چهار متغیر دارای مقدار true باشند ، چهار کلید فرم اصلی ببرنامه فعال میشوند ! (بجای کلید میتوان از هر کنترل دیگر استفاده کرد - در اینجا دو کلید ، یک منو و یک جعبه ابزار(toolStrip) استفاده شده)
    .
    .
    .
    ایجاد Dataset و چند متغیر (در اینجا چهار متغیر به تعداد فیلدهای از نوع bit) ؛

     DataAccess DA = new DataAccess();

    public static bool M = false;
    public static bool S = false;
    public static bool B1 = false;
    public static bool B2 = false;


    public int ID;
    public string Nam;
    public string Pas;
    public bool Mnu;
    public bool Str;
    public bool Btn1;
    public bool Btn2;


    همانطور که مشاهده مینمایید : متغیر های سطح دسترسی در حالت پیشفرض - false هستند .
    تذکر : متغیر های سطح دسترسی جهت قابل دسترس بودن در تمام برنامه از نوع static هستند !

    ایجاد متد سطح دسترسی :

    public void Sath(string name)        {
    DA.Connect();
    string sql = "Select * From [User] Where Nam = '{0}' ";
    sql = string.Format(sql, name);
    DataTable dt = DA.SELECT(sql);
    DA.Disconnect();


    M = Convert.ToBoolean(dt.Rows[0]["Mnu"].ToString());
    S = Convert.ToBoolean(dt.Rows[0]["Str"].ToString());
    B1 = Convert.ToBoolean(dt.Rows[0]["Btn1"].ToString());
    B2 = Convert.ToBoolean(dt.Rows[0]["Btn2"].ToString());
    }


    دستورات مرتبط با لاگین :

     public bool Login(string Name, string Pass)        {
    DA.Connect();
    string sql = "Select Count(*) From [User] Where Nam = '{0}' And Pas = '{1}'";
    sql = string.Format(sql,Name,Pass);
    DataTable dt = new DataTable();
    dt = DA.SELECT(sql);
    DA.Disconnect();


    bool Enter = false;
    if (dt.Rows[0][0].ToString() == "1")
    {
    Enter = true;
    }
    return Enter;
    }


    نکته : در واقع در دستورات بالا بیان میکنیم که اگر هر متغر برابر مقدار یک (true) باشد - کلید مربوطه فعال باشد و در غیر اینصورت غیرفعال .

    دستورات اضافه کردن کاربر جدید :

    public void ADD()        {
    DA.Connect();
    string sql = "Insert Into [User] (ID,Nam,Pas,Mnu,Str,Btn1,Btn2)";
    sql += "Values ({0},'{1}','{2}','{3}','{4}','{5}','{6}')";
    sql = string.Format(sql, this.ID, this.Nam, this.Pas, this.Mnu, this.Str, this.Btn1, this.Btn2);
    DA.Execute(sql);
    DA.Disconnect();
    }


    و در آخر متد نمایش مشخصات کاربران در دیتاگرید ویو :

    public DataTable ShowData()        {
    DA.Connect();
    DataTable dt = DA.SELECT("Select * From [User]");
    DA.Disconnect();
    return dt;
    }


    یادتون نره :

    using System.Data.SqlClient;

  4. #4
    کاربر دائمی آواتار ghasem110deh
    تاریخ عضویت
    اردیبهشت 1393
    محل زندگی
    تهران
    پست
    1,148

    نقل قول: فرم لاگین با سطح دسترسی

    حال وارد کد نویسی در محیط فرم ها میشویم (در واقع لایه سوم - فراخوانی دستورات در دو لایه قبل)
    .
    .
    .
    دستورات مربوط به کلید ورود (log in) :

    Users us = new Users();            if (us.Login(textBox2.Text, textBox1.Text) == true)
    {
    us.Sath(textBox2.Text);


    this.Hide();
    Form2 f2 = new Form2();
    f2.Show();
    }
    else
    MessageBox.Show("نام کاربری یا کلمه عبور صحیح نیست");


    طبیعتا دستور لغو :

     Application.Exit();


    نکته : توجه داشته باشید که در دستورات کلید ورود ... متد سطح دسترسی فراخوانی شده است ، و شرط بررسی سطح به تکست باکس دو (نام کاربری) ارجاع شده !
    عکس های ضمیمه عکس های ضمیمه

  5. #5
    کاربر دائمی آواتار ghasem110deh
    تاریخ عضویت
    اردیبهشت 1393
    محل زندگی
    تهران
    پست
    1,148

    فرم اصلی پروژه

    در ادامه به مشخص و اعمال سطح دسترسی های تعریف شده در فرم اصلی میپردازیم ؛
    .
    .
    .
    دستورات مربوط به تعیین سطح دسترسی در رویداد لود فرم :

     private void Form2_Load(object sender, EventArgs e)        {
    menuStrip1.Enabled = Users.M;
    toolStrip1.Enabled = Users.S;
    button1.Enabled = Users.B1;
    button2.Enabled = Users.B2;
    }


    نکته : در تکه کد بالا ، منو ، جعبه ابزار و دو کلید مورد نظر فعال یا غیر فعال بودنشان از طریق متغیر های تعریف شده (که حالت پیش فرضشان false بود) تعیین می گردد !
    بدین ترتیب که با مراجعه به فیلد مورد نظر در جدول و مشخص شدن مقدار (true و یا false) ، کنترل فعال یا غیر فعال میشود .

    طبیعتا نمایش فرم سوم :

    Form3 f3 = new Form3();
    f3.ShowDialog();
    عکس های ضمیمه عکس های ضمیمه

  6. #6
    کاربر دائمی آواتار ghasem110deh
    تاریخ عضویت
    اردیبهشت 1393
    محل زندگی
    تهران
    پست
    1,148

    فرم ایجاد کاربر جدید و تعیین سطح دسترسی

    در فرم ایجاد کاربر جدید و تعیین سطح دسترسی ، برای تعیین سطح از چهار comboBox با مقادیر true و false استفاده میکنیم ؛
    که مقادیر مورد نظر را در فیلد مربوط به کنترل های فرم اصلی از طریق دستورات ذیل در جدول ذخیره میشوند !
    .
    .
    .
    در رویداد لود فرم ، کلاس Users فراخوانی شده و دیتاتیبل جهت نمایش رکوردهای جدول در دیتا گرید ویو :

     private void Form3_Load(object sender, EventArgs e)        {
    Users uss = new Users();
    DataTable dt = uss.ShowData();
    dataGridView1.DataSource = dt;
    }


    دستورات کلید ثبت کاربر جدید :

    private void button2_Click(object sender, EventArgs e)        {
    Users us = new Users();
    us.ID = Convert.ToInt32(textBox1.Text);
    us.Nam = textBox2.Text;
    us.Pas = textBox3.Text;
    us.Mnu = Convert.ToBoolean(comboBox1.Text);
    us.Str = Convert.ToBoolean(comboBox2.Text);
    us.Btn1 = Convert.ToBoolean(comboBox3.Text);
    us.Btn2 = Convert.ToBoolean(comboBox4.Text);
    us.ADD();
    Form3_Load(null,null);
    MessageBox.Show("کاربر جدید ثبت شد");
    }


    نکته : توجه داشته باشید که ، مقادیر کمبوباکس ها به bool تبدیل شده و در فیلد های مربوط ذخیره شده اند ...
    سپس متد ADD - که دستورات insert را در خود دارد فراخوانی شده !
    و از :

    Form3_Load(null,null);


    جهت نمایش در دیتاگرید ویو استفاده شده !
    نکته : در محیط دستوری فرم ها به هیچ گونه فراخوانی فضای نام (using) نیاز نیست ! تنها کلاس های ایجاد شده را در صورت نیاز فراخوانی کرده ایم .
    همانطور که در تصویر ضمیمه مشاهده می نمایید ، فیلدی که دارای (تیک) می باشد ، کنترل مرتبط به خود را در هنگام ورود کاربر فعال میکند .
    عکس های ضمیمه عکس های ضمیمه

  7. #7
    کاربر دائمی آواتار ghasem110deh
    تاریخ عضویت
    اردیبهشت 1393
    محل زندگی
    تهران
    پست
    1,148

    نقل قول: فرم لاگین با سطح دسترسی

    نکته : جهت ورود اولیه (مدیر) می بایست ، یک رکورد از جدول را بصورت دستی مقداردهی کرده و سپس وارد برنامه شوید !
    (مقادیر نوع bit را true قرار دهید) ...
    .
    .
    .
    در ادامه نحوه حذف ، ویرایش سطح دسترسی و نحوه ویرایش یوزر و پس توسط خود کاربر ارائه می شود .
    .
    .
    .
    تا بعد ... یا علی علیه السلام

  8. #8
    کاربر دائمی آواتار fakhravari
    تاریخ عضویت
    دی 1388
    محل زندگی
    بوشهر
    سن
    34
    پست
    8,023

    نقل قول: فرم لاگین با سطح دسترسی

    برای سطح دسترسی راه بهتری است

    مثلا ما صفحه ای داریم برای Student
    4 عمل اصلی از نظر ما سطح هاشون مختلف
    خب یک جدول امنیت درست میکنیم و به این صورت چک میکنیم
    کاربر علی سطح1 برای جدول Student
    کاربر علی سطح2 برای جدول Student

    بعد میتوان در پیج لود صفحه سطح چک کرد

    -----------------

    نوع برسی و خروجی گرفتن از جداول موقع لاگین هم بهیه نیست

  9. #9

    نقل قول: فرم لاگین با سطح دسترسی

    با سلام و خسته نباشید
    آقا مطلبتون عالیه
    فقط خواهشا همینارو با اکسس هم یاد بدین
    خیلیا اس کیو ال بلد نیسن مثل من .
    ممنون میشم

  10. #10

    نقل قول: فرم لاگین با سطح دسترسی

    سلام و با عرض تشکر. امکان داره فایلش رو هم ادد کنید

  11. #11
    کاربر دائمی آواتار ghasem110deh
    تاریخ عضویت
    اردیبهشت 1393
    محل زندگی
    تهران
    پست
    1,148

    نقل قول: فرم لاگین با سطح دسترسی

    اولا کلا بیخیال اکسس شین (نظر منه و دو عزیز که ازشون یاد میگیرم)
    دوما واسه اکسس هم تقریبا همینه و فقط از دستورات خودش (oleDb) استفاده کنید ...
    ---------------------
    *** sql - و برای بانک های کوچیک sqlite ***

    سورس برنامه ضمیمه شد !
    فایل های ضمیمه فایل های ضمیمه

تاپیک های مشابه

  1. طریقه ساخت فرم لاگین با سطح دسترسی کاربران
    نوشته شده توسط eletcomp در بخش C#‎‎
    پاسخ: 12
    آخرین پست: چهارشنبه 07 خرداد 1393, 01:24 صبح
  2. سوال: مشکل در سطح دسترسی فرم لاگین
    نوشته شده توسط firoozi90 در بخش C#‎‎
    پاسخ: 4
    آخرین پست: یک شنبه 24 آذر 1392, 07:02 صبح
  3. نحوه خارج شدن از فرم زمان نداشتن سطح دسترسی
    نوشته شده توسط programers0 در بخش مباحث عمومی دلفی و پاسکال
    پاسخ: 1
    آخرین پست: جمعه 20 اردیبهشت 1392, 23:02 عصر
  4. نحوه خارج شدن از فرم زمان نداشتن سطح دسترسی
    نوشته شده توسط programers0 در بخش محیط توسعه (IDE) دلفی
    پاسخ: 0
    آخرین پست: پنج شنبه 19 اردیبهشت 1392, 18:44 عصر
  5. سطح دسترسی در فرم ها
    نوشته شده توسط rezaei manesh در بخش VB.NET
    پاسخ: 21
    آخرین پست: سه شنبه 16 اسفند 1384, 09:00 صبح

قوانین ایجاد تاپیک در تالار

  • شما نمی توانید تاپیک جدید ایجاد کنید
  • شما نمی توانید به تاپیک ها پاسخ دهید
  • شما نمی توانید ضمیمه ارسال کنید
  • شما نمی توانید پاسخ هایتان را ویرایش کنید
  •