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

نام تاپیک: نمايش نام كاربر بعدازلاگين

  1. #1

    نمايش نام كاربر بعدازلاگين

    باسلام
    چگونه مي توان نام كاربر رابعدازلاگين كرده دربالاي فرمي كه كاربرمربوطه باز مي كندنمايش بدهم.

  2. #2
    کاربر دائمی آواتار tefos666
    تاریخ عضویت
    فروردین 1386
    محل زندگی
    Tehran , IRAN
    پست
    245

    Talking نقل قول: نمایش نام کاربر بعدازلاگین

    با اجازه اساتید من در حد توان خودم چند تا راه دارم ، هرچند راه های بهتری هم هست ولی اینا بد نیست ، یه متغیر public تعریف کن و ا اون بخون یا اینکه مقدار رو بریز تو ریجیستری و از اون بخون


    یه کلاس با نام myclass ایجاد کن و اینو توش بزار

    public static string UserNameHolder;


    اگر ورود کاربر تو فرم لاگین با موفقیت بود این کد رو بنویس


    myclass.UserNameHolder = txtUserName.Text;
    Microsoft.Win32.RegistryKey regkey = Microsoft.Win32.Registry.CurrentUser;
    regkey.SetValue("UserName", myclass.UserNameHolder);


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



    if (UserNameHolder != null)
    {
    label1.Text = "username" + myclass.UserNameHolder;
    }


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

  3. #3
    کاربر دائمی آواتار tefos666
    تاریخ عضویت
    فروردین 1386
    محل زندگی
    Tehran , IRAN
    پست
    245

    Talking نقل قول: نمایش نام کاربر بعدازلاگین

    راه ساده تر ، تو همون myclass که ساختی این کد رو بنویس


    public static string user;


    نام کاربری رو احتمالا از بانک اطلاعاتی برمیگردونی ؟ اگر اینطوره متغیر رو پر کن با datareader میتونی وگرنه که این کد رو بنویس ، البته وقتی چک کردی کاربر درست لاگین کرده


    myclass.user =txtusername.text;();


    حالا تو فرم اصلیت تو قسمت load‌کد زیر رو بنویس


    label1.text=myclass.user;


    اگر از بانک اطلاعاتی خواستی مقدار رو پر کنی


    OleDbDataReader dr;
    String strsql;
    OleDbConnection con = new OleDbConnection(myclass.strcon);
    strsql = " Select id,username,password From tbl_Users Where username='" + this.txtUser.Text + "' ";
    OleDbCommand cmd = new OleDbCommand(strsql, con);
    if (cmd.Connection.State != ConnectionState.Open) { cmd.Connection.Open(); }
    dr = cmd.ExecuteReader();
    if (dr.Read())
    {
    if (dr.GetValue(2).ToString() == txtPass.Text)
    {

    frmMain f = new frmMain();
    f.Show();
    this.Hide();
    myclass.user = dr.GetValue(0).ToString();

    }

  4. #4

    نقل قول: نمایش نام کاربر بعدازلاگین

    سلام
    میتونین به این شکل هم عمل کنین
    تو فرم لاگین، زمانی که دکمه Login زده میشه و درستی نام کاربری چک میشه، مطمئنا یه دستور Select نوشته شده، حالا با این دستور Select میتونین اطلاعات کاربر رو هم واکشی کنین و توی یه متغیر سراسری بریزین
    این متغیر سراسری رو تو هر جای برنامه میتونین صدا بزنین

    using (SqlDataReader reader = LoginDataAccess.UserAccess(UserName, UserPass))
    {
    if (reader.Read())
    {
    ObjLogin.UserName = Convert.ToString(reader["UserName"]);
    ObjLogin.Name = Convert.ToString(reader["Name"]);
    ObjLogin.LName = Convert.ToString(reader["LName"]);
    ObjLogin.Access = Convert.ToInt32(reader["Access"]);
    }
    }


    توی این تکه کدی که براتون گذاشتم LoginDataAccess اسم یه کلاسه و من با تابع UserAccess درستی نام کاربری و پسورد رو چک کردم.
    ObjLogin هم کلاسیه که متغیرهام رو به شکل سراسری داخلش معرفی میکنم.
    کد این تابع UserAccess به این شکله:

    public static SqlDataReader UserAccess(string UserName, string Pass)
    {
    SqlConnection connection = Connection.ConnectToCarpet();
    SqlCommand command = newSqlCommand("Carpet_CheckUser", connection);
    command.CommandType = CommandType.StoredProcedure;
    command.Parameters.Add("@UserName", SqlDbType.NVarChar).Value = UserName;
    command.Parameters.Add("@Pass", SqlDbType.NVarChar).Value = Pass;
    SqlDataReader reader = command.ExecuteReader(CommandBehavior.SingleResult | CommandBehavior.CloseConnection);
    return reader;
    }


    توی کلاس ObjLogin هم متغیرهام رو اینطوری معرفی کردم:

    static public string UserName;
    static public string Name;
    static public string LName;


    و حالا تو هر فرمی که بخوام مشخصات کاربر دیده بشه، توی فرم لود اینطوری فراخوانی میکنم:


    LblName.Text = ObjLogin.Name + " " + ObjLogin.LName;


    تا جایی که تونستم سعی کردم واضح بگم، اگه سوال دیگه ای در مورد کدها داشتین بپرسین

    موفق باشین
    آخرین ویرایش به وسیله rana-writes : دوشنبه 26 بهمن 1388 در 13:24 عصر

  5. #5
    کاربر دائمی آواتار AliRezaPro
    تاریخ عضویت
    شهریور 1386
    محل زندگی
    PE Header
    پست
    1,054

    نقل قول: نمايش نام كاربر بعدازلاگين

    روش های tefos666 و rana-writes بدی که دارد(که البته بسیار بد هست)اینه که فقط کافی است این متغیر تو حافظه پر بشه ! کرکری که چند روز هم کار کرده باشد میتواند مقدار اون رو از متغیر بخونه ! اگر با اولی بی جی کار کرده باشید این قضیه برایتان مشهود می باشد.به نظرم روش رجیستری باید بهتر باشد.ولی من از یه روش دیگری استفاده کردم.

  6. #6

    نقل قول: نمايش نام كاربر بعدازلاگين

    سلام
    روش های tefos666 و rana-writes بدی که دارد(که البته بسیار بد هست)اینه که فقط کافی است این متغیر تو حافظه پر بشه ! کرکری که چند روز هم کار کرده باشد میتواند مقدار اون رو از متغیر بخونه ! اگر با اولی بی جی کار کرده باشید این قضیه برایتان مشهود می باشد.به نظرم روش رجیستری باید بهتر باشد.ولی من از یه روش دیگری استفاده کردم.
    میشه روش خودتون رو بگین
    و یه کمی کامل تر در مورد مشکل این روش توضیح بدین؟
    ممنونم

  7. #7
    کاربر دائمی آواتار Saeed.Masoumi
    تاریخ عضویت
    فروردین 1388
    محل زندگی
    نامعلوم
    پست
    539

    نقل قول: نمایش نام کاربر بعدازلاگین

    سلام
    منم با علیرضا موافقم اما تا حدی اون روش رجیستری هم فقط از سر باز کردن مشکله:
    راه درست:
    این لینک

  8. #8
    کاربر دائمی آواتار tefos666
    تاریخ عضویت
    فروردین 1386
    محل زندگی
    Tehran , IRAN
    پست
    245

    Talking نقل قول: نمايش نام كاربر بعدازلاگين

    دوستان ببخشيد ، مشكل اين كار كجاست ؟‌از لحاظ امنيتي چه مشكلي داره ؟‌اين دوستمون كه نميخواد اطلاعات كلمه عبور رو ذخيره كنه ميخواد نام كاربري كه لاگين كرده رو يك جا نشون بده من موجه نميشم اصلا يك كركري هم بياد برنامه ايشون رو def كنه بفهمه اين كاربر مثلا ali هستش ، خوب بعدش ؟‌

  9. #9
    کاربر دائمی آواتار Saeed.Masoumi
    تاریخ عضویت
    فروردین 1388
    محل زندگی
    نامعلوم
    پست
    539

    نقل قول: نمايش نام كاربر بعدازلاگين

    سلام
    دوست عزیز من به شخصه مشکلی با کرک شدن این نرم افزار نمی بینم مشکل اصلی شما استفاده از متغیر های سراسری و استاتیک است.یک سرچ در همین تالار بکن می بینی که دوستان قبلا خیلی راجع به ضعفهای این روش توضیح دادن و اگر ادامه بدم می شه تکرار مکررات.
    روش رجیستری هم یک روش اضافه و بیشتر سمبل کرن است تا یک روش کارا و اصولی وقتی می توان با توجه با لینکی که در پست قبل دادم این مشکل را حل کرد چرا متوصل به راههای انحرافی شویم؟
    مثل ثببت در رجیستری - ثبت در فایل و .....

  10. #10
    کاربر تازه وارد آواتار soheil_1367
    تاریخ عضویت
    آبان 1388
    محل زندگی
    همین نزدیکی ها
    پست
    77

    نقل قول: نمايش نام كاربر بعدازلاگين

    با اجازه اساتید محترم راهی که من به نظرم میاد که خیلی ساده هم هست اینه که تو یه فایل txt ذخیره کنی بعدش اون رو بخونی و نشون بدی فقط باید یادتم باشه که وقتی فرم بسته میشه اطلاعات فایل txt باید پاک بشه تا برای دفعه ی بعدی مشکلی نداشته باشه

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

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