اطلاعیه

Collapse
No announcement yet.

چگونگی قرار دادن پسورد و یوز برای برنامه

Collapse
X
 
  • فیلتر
  • زمان
  • Show
Clear All
new posts

    چگونگی قرار دادن پسورد و یوز برای برنامه

    سلام خدمت دوستان :nerd:
    من می خواستم بپرسم که در برنامه C# چطوری میشه برای برنامه ای که نوشتی یک log in تعریف کرد که از طرف یوز نیم و پسورد گرفت. من می خوام چند کاربر داشته باشم با سطح دسترسی متفاوت .
    یک کاربر که کاربر اصلی است و می تونه تغییرات لازمه را بدهد و یک سری کاربر که فقط اجازه دیدن اطلاعات رو داشته باشه و نتونه به تنظیمات دست بزنند oo:


    من دشمن تو و عقاید تو هستم ولی حاضرم در راه آزادی عقیده ات جانم را فدا کنم. (ولتر)

    #2
    پاسخ : چگونگی قرار دادن پسورد و یوز برای برنامه

    یک فرم تعریف کن که قبل از همه فرمها لود بشه ( مثل main form اصلی برنامه )
    توی اون چک کن یوزر/پس اگه صحیح بود ، بره مرحله بعد که نمایش همون فرم اصلی برنامه هست
    در صورت صحیح نبودن هم برنامه بسته بشه
    در مورد سطح دسترسی هم کار سختی نیست یک تیبل داری برای یوزرها که فیلدهای هر یوزر مشخصه دسترسی به بخشهای مختلف هست . با یه true/false بر اساس نام کاربری که لوگین کرده میتونی شرطهای دسترسی /عدم دسترسی را بنویسی.
    آن دم که مرا مي زده بر خاک سپاريد زير کفنم خمره اي از باده گذاريد
    تا در سفر دوزخ از اين باده بنوشم
    آنلحظه که با دوزخيان کنم ملاقات يک خمره شراب ارغوان برم به سوغات
    هرقدر که در خاک ننوشيدم از اين باده صافي ، بنشينم و با دوزخيان کنم تلافي

    دیدگاه


      #3
      پاسخ : چگونگی قرار دادن پسورد و یوز برای برنامه

      فقط یک مورد مهم مونده و اونم اینه که شما مجبور نیستی پسورد ها رو نگهداری کنی. چون احتمال لو رفتن اونها در صورت نگهداریشون هم هست. بهترین کار اینه که از روی پسورد یک کد بسازی و اون کد رو نگهداری کنی. مثلا میشه از crc32 یا حتی روتین های hash کردن که ترجیحا برگشت پذیر نباشه استفاده کرد.

      دیدگاه


        #4
        پاسخ : چگونگی قرار دادن پسورد و یوز برای برنامه

        با عرض تشکر از دوستان بابت راهنمایی ها مفیدشون :applause:
        این روتین های CR32 و Hash چطوری هستند میشه راهنمایی کنید.
        یک سوال دیگه داشتم و اون اینه که من تو برنامم از پورت سریال استفاده می کنم و برای تنظیم پارامتر هایی اون یک پنجره جدید (یک فرم جدید) باز می یکنم که می شه تو اون فرم، تنظیمات رو انجام داد. ولی زمانی که می خوام این تنظیمات رو به پورت سریال نسبت بدم نمیشه و اصلا تو فرم جدید تعریف نشده است (فقط تو فرم اصلی که از پورت سریال استفاده کردم میشه این تنظیمات رو انجام داد ولی من می خوام در هر دو فرم بتونم) برای این مشکل چکار کنم.
        من دشمن تو و عقاید تو هستم ولی حاضرم در راه آزادی عقیده ات جانم را فدا کنم. (ولتر)

        دیدگاه


          #5
          پاسخ : چگونگی قرار دادن پسورد و یوز برای برنامه

          سلام مجدد
          چند سوال دیگه :redface:
          1- کلا چطوری میشه از یک فرم محتویات فرم دیگه رو تغییر داد.
          2-تو همون سوال اول که می خواستم اولش از یوزر پسورد بگیره چطوری میشه هنگام بالا اومدن پنجره یوزر و پسورد پنجره اصلی برنامه رو غیر فعال کرد تا زمانی بتونه باهاش کار کنه که پسورد درست رو وارد کرده باشه
          3
          من دشمن تو و عقاید تو هستم ولی حاضرم در راه آزادی عقیده ات جانم را فدا کنم. (ولتر)

          دیدگاه


            #6
            پاسخ : چگونگی قرار دادن پسورد و یوز برای برنامه

            سلام
            این پروژه ای است که قبل ها برای درس میکرو انجام دادم
            بیشتر از این که به میکرو ربط داشته باشه پروژه برنامه نویسیه :mrgreen:
            پروژه یوز و پس رو مییگیره و لوگین میکنه
            کار خاصی انجام نمیده فقط زمان ورود رو ثبت میکنه
            7 یا هشت سطح دسترسی داره
            مثلا این که کسی بتونه حذف یوزرها یا تعریف یوزر جدید یا دیدن لوگین بقیه یا حذف زمان لوگین بقیه یا ....
            در اون از یک lcd 4*16 و کیبورد استفاده شده
            فایل شبیه ساز prouteus کنارش هست ولی لازم هست که یه مقدار سورس رو عوض کنی تا با proteus کار کنه چون کیبورد از usart در مود سنکرون استفاده می کنه و و در شبیه ساز این طور نیست
            اطلاعات در mmc متصل به میکرو نگهداری میشه
            کد اصلا بهینه نیست چون ...ولی به خوبی کار میکنه

            http://www.4shared.com/file/YORSUJh2..._etelaati.html

            امیدوارم به درد بخوره
            www.tehranelec.com

            دیدگاه


              #7
              پاسخ : چگونگی قرار دادن پسورد و یوز برای برنامه

              برای ایجاد دسترسی از چند فرم میتونی چند کار کنی. راحتترین کار اینه که متغیر سریال پورت مربوطه توی فرم رو static تعریف کنی تا بدون داشتن رفرنس فرم اصلی بشه بهش دسترسی داشت. یا اینکه با GetData و SetData از طریق AppDomain توی سیستم رجیسترش کنی. ولی اولی راحتتره.

              ضمنا شما میتونی در فرم اصلی فقط user , password رو بگیری و در صورت ok بودن فرم اصلی برنامه رو باز کنی. یا اینکه فرم اصلی رو به صورت hidden در نظر بگیری و در زمان load فرم رمز رو باز کنی و در صورت ok بودن پس از بستن فرم رمز فرم اصلی رو show کنی.

              روتین های hash و crc روتینهایی برای ایجاد یک کد تا حدودی منحصر بفرد از روی یک سری اطلاعات هستن. هر چقدر احتمال تولید یک کد مشابه از روی بایتهای متفاوت کمتر باشه روش مورد استفاده بهینه تره. اما چون اینجا سر و کارمون با اطلاعاتی که اولا متنیه و ثانیا توسط کاربر بصورت دستی وارد میشه پس احتمال قوی با یک الگوریتم ساده هم جواب میده و احتیاجی به روش های پیچیده نیست.


              using System.Security.Cryptography;

              byte[] EncodeText(string str)
              {
              SHA1 sha = new SHA1CryptoServiceProvider();
              return sha.ComputeHash(System.Text.Encoding.UnicodeEncodi ng.GetBytes(str));

              }


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

              دیدگاه


                #8
                پاسخ : چگونگی قرار دادن پسورد و یوز برای برنامه

                سلام خدمت دوستان و عزیزان :redface:
                من دارم با پورت سریال تو C#.NET کار می کنم. با پورت سریال آشنایی دارم و قبلا هم با هاش تو C# کار کردم و جواب گرفتم. الان که می خوام کار کنم یه مشکل کوچولو دارم اونم اینه که زمانی که یک فرم ایجاد می کنم برای پیکربندی پورت سریال و برای هر کدام یک comboBox تعریف می کنم تا کاربر تنظیمات لازم را انجام دهد و می خوام این تنظیمات رو به پورت سریال اعمال کنم یه مشکلی است و اون تنظیم پریتی و stop bit است. چطوری میشه چیزی رو که کاربر تو comboBox انتخاب کرده به اینها اعمال کرد. چون مثلا میگه برای انتصاب پریتی باید یه متغیر از این نوع داشته باشی ؟؟؟؟؟؟؟؟؟
                من دشمن تو و عقاید تو هستم ولی حاضرم در راه آزادی عقیده ات جانم را فدا کنم. (ولتر)

                دیدگاه


                  #9
                  پاسخ : چگونگی قرار دادن پسورد و یوز برای برنامه

                  سلام خدمت عزیزان
                  من برای داشتن یک فرم برای user name و password اومدم و از برنامه ای که در کتاب "آموزش ویژال C# 2005" نوشته آقای هاشمیان وجود داره استفاده کردم (تو صفحه 512). ولی این برنامه یه خطا میده و اونم اینه که تو تابع ای که می خواد از بسته شدن پنجره جلوگیری کنه میگه که پارامتر e دارای این خاصیت cancel نیست.
                  private void Login_FormClosing(object sender,FormClosingEventArgs e)
                  {
                  // If we are not allowing the form to close...
                  if (!blnAllowClosin)
                  {
                  // Set the cancel flag to true
                  e.Cancel = true;
                  }
                  }
                  من دشمن تو و عقاید تو هستم ولی حاضرم در راه آزادی عقیده ات جانم را فدا کنم. (ولتر)

                  دیدگاه


                    #10
                    پاسخ : چگونگی قرار دادن پسورد و یوز برای برنامه

                    برای پریتی میتونی از Reflection استفاده کنی. خیلی هم راحت و مطمئن هست. فرض کن یک enum داری که اعضایش قراره در یک Combo ست و انتخاب بشن. اگر اسامی آیتم های این enum رو به عنوان آیتم های combo به اون اضافه کنی به هنگام تغییر آیتم combo میشه متن SelectedItem رو گرفت و با استفاده از تابع Enum.Parse از روی متن اون مقدارش رو بگیری.

                    دیدگاه


                      #11
                      پاسخ : چگونگی قرار دادن پسورد و یوز برای برنامه

                      آقا یه مشکل بزرگتر با این برنامه
                      وقتی پروژه secure login رو می سازی و کدهای گفته شده و مراحل گفته شده رو انجام می دی و برنامه رو اجرا می کنه برنامه کار نمی کنه و اصلا پنجره مربوطه به login ظاهر نمیشه.
                      http://d01.megashares.com/dl/9acec8e/FormsLibrary.rar

                      تو لینک زیر این برنامه رو قرار دادم ولی مشکل بالا در مورد پارامتر e رو کامنت کردم که خطا نده !!!!!!!
                      من دشمن تو و عقاید تو هستم ولی حاضرم در راه آزادی عقیده ات جانم را فدا کنم. (ولتر)

                      دیدگاه

                      لطفا صبر کنید...
                      X