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

نام تاپیک: سطح دسترسی کاربربه

  1. #1
    کاربر دائمی آواتار asd_moghadas
    تاریخ عضویت
    اسفند 1387
    محل زندگی
    اصفهان
    پست
    143

    سطح دسترسی کاربربه ایتم های فرم دیگر

    سلام به دوستان
    کمک فوری درزمینه سطح دسترسی کاربربه منوهای فرمها
    من خیلی سرچ کردم هم درسایت وهم درگوگل اماتمام موارد تئوریک بودن حالامشکل من اینه که من یک فرم برای تعریف کاربر دارم که توی اون باچند چک باکس جدول یوزرم را0و1 میکنم حالا میخوام موقع لوگین کردن به برنامه
    1-برنامه تشخیص بده که چه کاربری اکنون وارد شده
    2-ایا این کاربر مجوز دسترسی به منوی مربوطه رادارد
    3-درصورت نداشتن مجوز پیام مناسب

    از دوستان خواهش میکنم اگه امکان داره باکد توضیح بدهند.
    وبا عذرخواهی ازدوستان میدانم دراین مورد بحث زیادشده اما مباحث تاانجا که من طی چندروز گذشته سرچ کردم بیشتر تئوری بود (C#‎)
    ممنون
    آخرین ویرایش به وسیله asd_moghadas : یک شنبه 03 خرداد 1388 در 08:03 صبح

  2. #2
    کاربر دائمی آواتار happy65_sh
    تاریخ عضویت
    اردیبهشت 1386
    محل زندگی
    شهر بادگیرها
    پست
    372

    نقل قول: سطح دسترسی کاربربه

    من یک فرم برای تعریف کاربر دارم که توی اون باچند چک باکس جدول یوزرم را0و1 میکنم
    این یعنی چی؟؟
    1-برنامه تشخیص بده که چه کاربری اکنون وارد شده
    مطمئنا یک جدول داری که کد کاربر و نام عبور و رمز عبورشون را ذخیره می کنی.برای اینکه تشخیص بدی چه کاربری وارد شده کافیه چک کنی که اون یوزر و پسوورد متعلق به چه کسی هست و یک متغیر در برنامه ات تعریف کنی واگه کاربر یوزر و پسووردش را درست وارد گرد اون متغیر را برابر کد اون کاربر قرار بدی.به این صورت همیشه به کد اون کاربر و در نتیجه سایر اطلاعاتش دسترسی داری

    SqlCommand karbar = new SqlCommand("select kcode from yourtable where user=@user and pass=@pass", connection);
    karbar.Parameters.AddWithValue("@user", youruser);
    karbar.Parameters.AddWithValue("@pass", yourpass);
    SqlDataReader dr = karbar.ExecuteReader();
    if(dr.Read())
    {
    yourchangablevalu = dr[0].ToString();
    dr.Close();
    }
    else
    {
    MessageBox m = new MessageBox("", " نام عبور یا رمز عبور اشتباه است");
    m.ShowDialog();
    dr.Close();
    }

    آخرین ویرایش به وسیله happy65_sh : سه شنبه 29 اردیبهشت 1388 در 11:35 صبح

  3. #3
    کاربر دائمی آواتار asd_moghadas
    تاریخ عضویت
    اسفند 1387
    محل زندگی
    اصفهان
    پست
    143

    نقل قول: سطح دسترسی کاربربه

    سلام به دوست عزیز که کمک کردن
    درمورد اول که پرسیده بودین ؟منظور فرم تعریف کاربران بود
    ومورد دوم یعنی درفرم لودم بنویسه کاربر جاری = asd
    yourchangablevaluبعنی چی؟
    واین کدرادرموعق لوگین بنویسم یعنی درموقع کلیک روی باتون یا درفرم لودفرم دومم

  4. #4
    کاربر دائمی آواتار happy65_sh
    تاریخ عضویت
    اردیبهشت 1386
    محل زندگی
    شهر بادگیرها
    پست
    372

    نقل قول: سطح دسترسی کاربربه

    yourchangablevaluبعنی چی؟
    همان متغیر سراسری برنامه (نه فرم) را بااین نام نوشته ام
    واین کدرادرموعق لوگین بنویسم یعنی درموقع کلیک روی باتون یا درفرم لودفرم دومم
    می تونی یک تابع بنویسی و بر حسب نیازت اون را فراخوانی کنی مثلا یکی از جاهاش توی باتن تاییدت می تونه باشه

  5. #5
    کاربر دائمی آواتار asd_moghadas
    تاریخ عضویت
    اسفند 1387
    محل زندگی
    اصفهان
    پست
    143

    نقل قول: سطح دسترسی کاربربه

    سلام
    من روش شمارو امتحان کردم اما من 1 جدول دارم که توی ان یک ستون یوزرنیم ویک ستون پسورد وچندستون دیگه که در این ستونها از نوع bit یا tiynitهستن ومن درموقع تعریف کاربر این ستونها را باشرط ifچک میکنم که اگه تیک chekbox فلان منو خورده شده مقدار این ستونهای جدول به 1واگه نه به 0 ثبت بشه در dbوtb_userحلا مشکل من دقیقا سر خواندن مقدار این ستونهاست که اگه 1بود هنگام ورود کاربر انها هم چک بشه وکاربر دسترسی تعریف شده خودشو داشته باشه ممنون میشم راهنمایی کنید واقعا در این مورد هنگ کرده ام

  6. #6
    کاربر دائمی آواتار happy65_sh
    تاریخ عضویت
    اردیبهشت 1386
    محل زندگی
    شهر بادگیرها
    پست
    372

    نقل قول: سطح دسترسی کاربربه

    سلام
    دوست عزیز
    من نمی دونم منوی شما چه شکلی هست که تونستید برای هرکدوم در جدول کاربران یک فیلد در نظر بگیرید اگه اینقدر منوتون کوچک هست خوب با چند تا if چک کنید مقدار اون در جدولتون True هست یا False بعد هم بر اساس اون Visible ها را True یا False کنید..
    اما در کل فکر نمی کنم نگهداری اینهمه اطلاعات در یک جدول کار صحیحی باشه بهتره برای جدول کاربرت یک فیلد کد تعریف کنی و اطلاعات مربوط به منوهات را در جدول جداگانه ای نگه داری(یک جور آینده نگری..شاید سال دیگه منوهات 5 برابر الان بشه اونوقت..)
    و بعدمی تونی به راحتی حتی از طریق یک کلاس امکان دسترسی کاربر به قسمت های مختلف را جستجو کنی.
    موفق باشی

  7. #7
    کاربر دائمی آواتار asd_moghadas
    تاریخ عضویت
    اسفند 1387
    محل زندگی
    اصفهان
    پست
    143

    نقل قول: سطح دسترسی کاربربه

    سلام
    من یک جدول برای سطح دسترسی ایجاد کردم ویک جدول برای یوزروپسورد که سطح دسترسی رابا جدول اول چک کنم اما نمیدونم چگونه وازچه کلاسی استفاده کنم اگه امکان داره درقالب کد توضیح بدین ممنون

  8. #8
    کاربر دائمی آواتار happy65_sh
    تاریخ عضویت
    اردیبهشت 1386
    محل زندگی
    شهر بادگیرها
    پست
    372

    نقل قول: سطح دسترسی کاربربه

    بعدمی تونی به راحتی حتی از طریق یک کلاس...
    مثلا یک کلاس ساده می تونه این باشه:
    من فرض کرده ام جدول کاربرانم شامل کد,یوزر و پسوورد باشه و جدول دیگر که بانام aemal مشخص می شه و سطح های دسترسی را نشون می ده شامل کد کاربر,نام(منوهایی که کاربر اجازه دسترست به آنها را داره) و یک فیلد که نشانه True یا False بودنش هست(let)

    SqlCommand com = newSqlCommand("select name,let from aemal where kcode=kcode", connection);
    SqlDataReader dr = com.ExecuteReader();
    if(dr.read())
    {
    if(dr[1].ToString()=="True")
    return "True";
    else
    return "False";
    }

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

  9. #9
    کاربر دائمی آواتار asd_moghadas
    تاریخ عضویت
    اسفند 1387
    محل زندگی
    اصفهان
    پست
    143

    نقل قول: سطح دسترسی کاربربه

    من کد شمارو تست کردم وکوئری که نوشتم به صورت:

    SqlCommand com = newSqlCommand("select let from aemal where kcode=@kcode", connection);
    SqlDataReader dr = com.ExecuteReader();
    if(dr.read())
    {
    if(dr[0].ToString()=="True")
    lable1.enble=true;
    else
    lable1.enble=false;

    }

    دوتامشکل پیداکردم
    1-مقدار kcode=باچی قراربدم چون جدول یوز با جدول aemale جوین شده من یک فیلد تعریف کردم به نام record Idومقداراون درموقع ثبت Id جدول یوزرباهم برابر میشه یعنی همیشه ID=Rcor idوبرای دسترسی کاربرانم فقط let درجدول ثبت میشه که من منظور شمارا از نام متوجه نشدم (کند ذهنی )که چطور مثال lable 1رادر جدول داشته باشم ودرموقع تعریف کاربر بگم که کاربر به اون دسترسی داشته باشه یا نه وبعد از لاگین چک کنم
    2-کد شما را وقتی به صورت فوق نوشتم چه true وچه falseیک کار انجام داد بعنی lable1.enable همیشه برابرfalseبود
    حلا راهنمایی کنید مشکل واشتباه من در کجاست ؟

  10. #10
    کاربر دائمی آواتار happy65_sh
    تاریخ عضویت
    اردیبهشت 1386
    محل زندگی
    شهر بادگیرها
    پست
    372

    نقل قول: سطح دسترسی کاربربه

    مقدار kcode را باید برابر yourchangablevalu یعنی همون متغیر سراسری برنامه ات که کد کاربر را در اون ریخته ای قرار بدی
    من منظور شمارا از نام متوجه نشدم (کند ذهنی
    اولا منظورم از نام :ببین مثلا تو توی منویی که طراحی کردی سه قسمت زیر را داری:
    تعریف کاربر تغییر کاربر اصلاح کاربر
    منظور من دقیقا همین عناوین هست.مثلا توی جدول aemal یه نمونه به صورت زیر ذخیره شده:
    تعریف کاربر 1 True
    تغییر کاربر 1 True
    این به این معنی هست که کاربر با کد 1 اجازه دسترسی به تعریف و تغییر کاربر را داره.برای اعمال این مطلب در برنامه فرض کن تکه کد تاپیک قبلی را در یک کلاس با نام finddastresy در تابع find نوشته ایم پس:

    if(finddastresy.find("تعریف کاربر"))
    buttontaerif.Visible=True;

    دوما این اصلا ربطی به کند ذهنی یا تند ذهنی نداره...من فقط روی این موضوع توی برنامه ام کارکرده ام

  11. #11
    کاربر دائمی آواتار asd_moghadas
    تاریخ عضویت
    اسفند 1387
    محل زندگی
    اصفهان
    پست
    143

    نقل قول: سطح دسترسی کاربربه

    سلام
    من کد شمارا امتحان کردم وبه صورت کد زیر در فرم لاگین دراوردم وبرای لاگین مشکلی ندارم

    private long SelectPass()
    {
    long Pass = 0;
    Maine_Form m=new Maine_Form();

    try
    {
    SqlCon = new SqlConnection();
    SqlCon.ConnectionString = Nezarat.Properties.Settings.Default.Nezarat_dataCo nnectionString;
    SqlCon.Open();
    SqlCmd = new SqlCommand();
    SqlCmd.Connection = SqlCon;
    SqlCmd.CommandType = CommandType.Text;
    SqlCmd.CommandText = "SELECT UserID, Password FROM Tb_Users WHERE (UserName =@username)";
    SqlCmd.Parameters.Add("@username", SqlDbType.NVarChar).Value = Cmb_User.SelectedItem.ToString();

    SqlDA = new SqlDataAdapter();
    SqlDA.SelectCommand = SqlCmd;
    SqlCmd.ExecuteNonQuery();
    DTable = new DataTable();
    SqlDA.Fill(DTable);
    if (DTable.Rows.Count > 0)
    {
    Pass = long.Parse(DTable.Rows[0].ItemArray[1].ToString());

    }

    }
    catch (Exception ex)
    {
    MessageBox.Show(ex.Message);
    }
    finally
    {

    SqlCon.Close();
    }
    return Pass;
    }

    اما کد دوم که در فرم لود پس از لاگین می نویسیم تنها رکور اول جدول را چک میکنه (کاربر اول )واگه با کار بران دیگر وارد شویم این کار انجام نمی شود

    private void Accesslevel()
    {
    byte id = 0;
    Frm_Password f = new Frm_Password();
    //try
    //{
    SqlCon = new SqlConnection();
    SqlCon.ConnectionString = Nezarat.Properties.Settings.Default.Nezarat_dataCo nnectionString;
    SqlCon.Open();
    SqlCmd = new SqlCommand();
    SqlCmd.Connection = SqlCon;
    SqlCmd.CommandType = CommandType.Text;
    //SqlCmd.CommandText = SqlCmd.CommandText = "SELECT UserID, Password FROM Tb_Users";// WHERE (UserID =@UserID)";//UserName
    SqlCmd.CommandText = "SELECT UserID FROM Tb_Users WHERE (UserID =@UserID)";
    SqlCmd.Parameters.Add("@UserID", SqlDbType.TinyInt).Value = AccessID;
    AccessID = (byte)SqlCmd.ExecuteScalar();
    //SqlCmd.ExecuteNonQuery();
    SqlCmd.CommandText = "SELECT lIdRecord,Gozareshat FROM Tb_AccessLevel WHERE(lIdRecord=@lIdRecord)";
    SqlCmd.Parameters.Add("@lIdRecord", SqlDbType.TinyInt).Value = AccessID;

    SqlDataReader dr = SqlCmd.ExecuteReader();
    if (dr.Read())
    {
    if (dr[1].ToString() == "True")
    {
    Gozareshat.Enabled = true;
    }
    else
    Gozareshat.Enabled = false;
    }
    label1.Text = AccessID.ToString();
    //}
    //catch (Exception ex)
    //{
    // MessageBox.Show(ex.Message);
    //}
    //finally
    //{
    // SqlCon.Close();
    //}
    }

    حا لا میخواهم بدانم در کجا اشتباه کردم وچه نکته ای را فراموش کردم که تنها اطلاعات رکورد اول باز خوانی میشه مگه در موقع لود شدن نباید اطلاعات همان رکود خوانده بشه
    آخرین ویرایش به وسیله asd_moghadas : دوشنبه 04 خرداد 1388 در 07:57 صبح

  12. #12
    کاربر دائمی آواتار asd_moghadas
    تاریخ عضویت
    اسفند 1387
    محل زندگی
    اصفهان
    پست
    143

    Question نقل قول: سطح دسترسی کاربربه

    کسی نبود راهنمایی کنه ؟

  13. #13
    کاربر دائمی آواتار asd_moghadas
    تاریخ عضویت
    اسفند 1387
    محل زندگی
    اصفهان
    پست
    143

    نقل قول: سطح دسترسی کاربربه

    سلام به دوستان
    مشکل من دقیقا خواندن مقدار ایدی درفرم لاگین مقدار دهی به پروپرتی سراسری در برنامه است لطفا کمک کنید تنها مقدار سطر اول ار تیبل رامیگیره یعنی همیشه AccessID=1

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

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