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

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

  1. #1

    Question تعیین سطح دسترسی در برنامه ی تحت شبکه

    سلام دوستان!
    من می خوام واسه یه برنامه ی تحت شبکه سطح دسترسی تعریف کنم به این صورت که مثلا اگه طرف مدیر بود بتونه یه سری کارا مثل تعریف کاربر جدید و... انجام بده.
    در ابتدا می خواستم یه متغیر تعریف کنم که با زدن دکمه ورود و نمایش فرم اصلی نام کاربری در اون ذخیره بشه اما اینجوری (تحت شبکه) همیشه نام آخرین نفری که وارد شده در اون قرار میگیره.
    از اونجایی که وقت کمی واسه تحویل پروژم دارم لطفا با یه روش آسون و گام به گام بگید چی کار باید بکنم؟

  2. #2

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

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

  3. #3

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

    1. من تو پروژم حداقل 10 تا فرم دارم . واسه هر کاربر این 10 تا فرم رو ایجاد کنم؟
    2.یکی از کارایی که مدیر میتونه انجام بده ایجاد کاربر جدیده. واسه کاربرایی که جدیدا اضافه میشن چه طوری فرم درست کنم؟
    اگه میشه با کدنویسی بگید.

  4. #4

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

    نقل قول نوشته شده توسط bahane274 مشاهده تاپیک
    1. من تو پروژم حداقل 10 تا فرم دارم . واسه هر کاربر این 10 تا فرم رو ایجاد کنم؟
    2.یکی از کارایی که مدیر میتونه انجام بده ایجاد کاربر جدیده. واسه کاربرایی که جدیدا اضافه میشن چه طوری فرم درست کنم؟
    اگه میشه با کدنویسی بگید.
    توی کابرهات چندتا سطح دسترسی داری؟یعنی بیا برای تک تک کاربرات معلوم کن چنذ مفر می تونن کاربر جدید ایجاد کنن؟چند تا می تونند فلان کار خاص رو انجام بدن؟
    رو این تعداد باید فرم درست کنی
    روی هر کدوم از فرم ها قابلیت هایی که مد نظرت هستن رو اضافه کن
    دوست عزیز خواستی راهنماییت می کنم ولی الان نمی تونم کد بنویسم
    سوالی داشتی بازم بپرس

  5. #5

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

    پروژم سیستم املاک تحت شبکه ست که می خوام فقط مدیر بنگاه بتونه کاربر جدید ایجاد کنه . از طرف دیگه توی یه فرم دیگه دفترچه یادداشت گذاشتم که هر کاربری می تونه یه یادداشت به عنوان یادآوری بزاره که می خوام هر کاربر تعیین کنه که این یادداشت واسه همه نمایش داده بشه یا فقط خودش.
    اینکه واسه هر کاربر یه فرم جدا درست کنم گیجم کرد. در ضمن نمی دونم واسه کاربرای جدیدی که اضافه میشن چه جوری فرم درست کنم.

  6. #6

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

    نقل قول نوشته شده توسط bahane274 مشاهده تاپیک
    پروژم سیستم املاک تحت شبکه ست که می خوام فقط مدیر بنگاه بتونه کاربر جدید ایجاد کنه . از طرف دیگه توی یه فرم دیگه دفترچه یادداشت گذاشتم که هر کاربری می تونه یه یادداشت به عنوان یادآوری بزاره که می خوام هر کاربر تعیین کنه که این یادداشت واسه همه نمایش داده بشه یا فقط خودش.
    اینکه واسه هر کاربر یه فرم جدا درست کنم گیجم کرد. در ضمن نمی دونم واسه کاربرای جدیدی که اضافه میشن چه جوری فرم درست کنم.
    خوب دو تا فرم احتیاج دارید یکی واسه مدیر یکی واسه بقیه کاربرا
    هر کاربر جدید که اضافه میشه باید از فرم نوع دو استفاده کنه

  7. #7

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

    1.
    نقل قول نوشته شده توسط bahane274 مشاهده تاپیک
    نمی دونم واسه کاربرای جدیدی که اضافه میشن چه جوری فرم درست کنم.
    2. آخه بعلت وجود اون دفترچه یادداشته همین کاربرای نوع 2 هم از هم متفاوت میشن. یعنی این جوری نیست که بگم اگه طرف مدیر بود فرم 1 باز بشه اگه نبود فرم نوع 2. بنابراین دوباره باید تعیین کنم که اگه مدیر نبود ، پس کیه و آیا یادداشت باید بهش نشون داده بشه یا نه ؟
    پس باید اسم کاربری شو داشته باشم. درسته؟

  8. #8

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

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

  9. #9

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

    نقل قول نوشته شده توسط bahane274 مشاهده تاپیک
    1.
    دوباره باید تعیین کنم که اگه مدیر نبود ، پس کیه و آیا یادداشت باید بهش نشون داده بشه یا نه ؟ پس باید اسم کاربری شو داشته باشم. درسته؟
    یه سوال دیگه فرم نوع 2 باید شامل همه اون 10 تا فرم باشه دیگه؟

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

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

    سلام.
    خیلی نیاز نیست پیچیده اش کنید.
    فرض کنیم یه button قرار دادی که اگه روش کلیک کنید بتونید یه کاربر جدید ایجادکنید.
    اگه از پایگاه برای ذخیره یوزر و پسورد استفاده می کنید یه هم برای فیلد سطح دسترسی بذارید.
    تو برنامه چک کنید اگه کاربر دارای سطح کاربری مدیریته پس visibility اون button رو true کنید. اگه نه که false.

    موفق باشید.

  11. #11

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

    این فکر خوبیه. دیگه داشتم قاط میزدم.
    واسه دفترچه یادداشته چی کار کنم که می خوام واسه هر کاربر یادداشت جدا نمایش داده بشه؟

  12. #12

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

    نقل قول نوشته شده توسط bahane274 مشاهده تاپیک
    یه سوال دیگه فرم نوع 2 باید شامل همه اون 10 تا فرم باشه دیگه؟
    می تونه یه لینک واسشون بذاری
    ولی این راهی هم که دوستومن گفتن میشه فقط واسه برنامه های کوچیک خوبه

  13. #13

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

    دفترچه یادداشتم به این صورته که فرد یه تاریخ و عنوانی رو تعیین میکنه مثلا" قرار محضر با فلانی " که هر وقت تو اون روز نرم افزار املاک رو باز کرد طی پیغامی این قرار یادآوری میشه.حالا من می خوام موقع ایجاد ،فرد تعیین کنه این یادداشت خصوصی باشه (با توجه به نام کاربری)یا به همه همکارانش نمایش داده بشه.

  14. #14

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

    نقل قول نوشته شده توسط bahane274 مشاهده تاپیک
    دفترچه یادداشتم به این صورته که فرد یه تاریخ و عنوانی رو تعیین میکنه مثلا" قرار محضر با فلانی " که هر وقت تو اون روز نرم افزار املاک رو باز کرد طی پیغامی این قرار یادآوری میشه.حالا من می خوام موقع ایجاد ،فرد تعیین کنه این یادداشت خصوصی باشه (با توجه به نام کاربری)یا به همه همکارانش نمایش داده بشه.
    خب این دیگه از سطح دسترسی و تحت شبکه کردن خارج میشه
    خب اگه خصوصی باشه که فقط واسه فرد نمایش داده میشه و اگه عمومی باشه واسه کل کابرها باید broadcast بشه
    تاریخ ثبت یادداشت رو با تاریخ روز چک می کنه و بعد این کاری رو که گفتم انجام میده

  15. #15
    کاربر دائمی
    تاریخ عضویت
    مهر 1388
    محل زندگی
    iran
    پست
    311

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

    ولی این راهی هم که دوستومن گفتن میشه فقط واسه برنامه های کوچیک خوبه
    یه خورده بی انصافیه اینطوری.
    من یه سیستم فایل نوشتم از این روش هم توش استفاده کردم، خوب نتیجه داد.

    ،فرد تعیین کنه این یادداشت خصوصی باشه (با توجه به نام کاربری)یا به همه همکارانش نمایش داده بشه.
    یادداشتهای که قراره عمومی باشه رو می تونید جدا ذخیره کنید.
    اونطوری هر کسی که login کرد واسش نمایش داده می شه.
    ببینید اینطوری می تونید جواب بگیرید؟

  16. #16

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

    نقل قول نوشته شده توسط maryam_87 مشاهده تاپیک
    خب اگه خصوصی باشه که فقط واسه فرد نمایش داده میشه و اگه عمومی باشه واسه کل کابرها باید broadcast بشه
    اگه میشه در مورد این broadcast بیشتر توضیح بده.

  17. #17

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

    نقل قول نوشته شده توسط manij_mhm مشاهده تاپیک

    یادداشتهای که قراره عمومی باشه رو می تونید جدا ذخیره کنید.
    اونطوری هر کسی که login کرد واسش نمایش داده می شه.
    ببینید اینطوری می تونید جواب بگیرید؟
    با یادداشتهای عمومی مشکلی ندارم میتونم یک فیلد بولین تعریف کنم که واسه عمومی ها یک باشه.
    اما یادداشت های خصوصی چی؟
    اگه تحت شبکه نبود میگفتیم مثلا آقای رضایی این یادداشت رو واسه خودش گذاشته و حالا که لاگین میکنه بهش نشون میدیم اما تو شبکه در آن واحد چند نفر لاگین کردند ومن نمی دونم چه جوری تو برنامم تشخیص بدم الان این کیه؟؟

  18. #18

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

    ببینید من یک متغیر Public static تعریف کردم که به محض لاگین شدن اسم کاربری درون اون ریخته میشه و موقع نمایش یادداشتها هم چک میکنم که اگه فیلد user مربوط به یادداشت امروز برابر این متغیره اون رو نمایش بده.(واسه یادداشتهای خصوصی)
    حالا سوال من از دوستانی که شبکه کار کردند اینه که وقتی یه user لاگین کرده و بعد از اون یکی دیگه لاگین میکنه ، آیا اسم کاربری آخرین نفر تو این متغیر قرار میگیره یا اینکه مثل تحت وب هر کی یه session داره و مقدار این متغیر سراسری برای هر کاربر تا وقتی که از برنامه خارج بشه حفظ میشه؟

  19. #19
    کاربر دائمی آواتار C Sharp
    تاریخ عضویت
    مرداد 1389
    محل زندگی
    System.Object
    پست
    101

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

    چرا کسی نپرسید : منظورتون از تحت شبکه چیه ؟

    دیتابیس رو یه سیستم قرار داره و بقیه از سیستم های دیگه با connection string به اون متصل میشن ؟
    یا اینکه سیستمتون رو کلاینت سروری نوشتین و سوکت پروگرمینگ کار کردین ؟

    اینو به این خاطر پرسیدم چون قضیه این تاپیک شده مثل اون فیلی که تو اتاق تاریک گذاشتن و هرکی میرفت تو به یه جاش دست میزد و یه تصوری میکرد و واسه بقیه تعریف میکرد

    در هر صورت ، اگه میخواید فعلا این سیستم کارتون رو راه بندازه و دیدی به آینده و توسعه اش ندارین میتونید از روشی که manij_mhm گفتن استفاده کنی واسه تعیین سطوح دسترسیت

    واسه پیغامها هم میتونید یه جدول تو بانک بذارید که توی اون فرسنتده ، گیرنده ، متن ، تاریخ ارسال مشخص باشه .اگه میخواین به شخص خاصی ارسال بشه که نام کاربریش رو تو فیلد گیرنده میذارید و اگه میخواین به دست همه برسه میتونید یه مقدار خاصی رو قرار داد کنید (مثلا 'all') و تو فیلد گیرنده بذارید

    وقتی کاربری لاگین کرد ، بر اساس نام کاربریش تو جدول پیغامها سرچ کنید

    Select * From Message Where Recipient='Username' or Recipient='all'

    چون کاربر هروقت لاگین کنه همه این پیغامها (چه خوانده شده چه نشده ) رو میبینه ، پس :

    اگه میخواید سوابق این پیغامها رو داشته باشید ولی نمیخواید همه رو ببینه یه فیلد از نوع bit به اسم IsReaded تو جدول اضافه کنین و فقط اونایی که False هستن رو نشون بدین


    Select * From Message Where (Recipient='Username' or Recipient='all' ) and IsReaded = 0


    و اگه نمیخواید سوابق رو نگه دارید بعد نمایش از جدول پاکشون کنید

  20. #20
    کاربر دائمی آواتار C Sharp
    تاریخ عضویت
    مرداد 1389
    محل زندگی
    System.Object
    پست
    101

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

    نقل قول نوشته شده توسط bahane274 مشاهده تاپیک
    سوال من از دوستانی که شبکه کار کردند اینه که وقتی یه user لاگین کرده و بعد از اون یکی دیگه لاگین میکنه ، آیا اسم کاربری آخرین نفر تو این متغیر قرار میگیره یا اینکه مثل تحت وب هر کی یه session داره و مقدار این متغیر سراسری برای هر کاربر تا وقتی که از برنامه خارج بشه حفظ میشه؟
    چه برنامه تحت شبکه باشه و چه نباشه ، وقتی نمونه های مجزایی از سیستم اجرا بشه ، هرکدوم حافظه جدایی رو به خودشون تخصیص میدن ، پس نگران این قضیه نباشید

  21. #21

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

    جناب c sharp مشکل من اون متغیر سراسری ست نه نحوه ارسال پیغام.

    شما گفتید که وقتی نمونه های مجزایی از سیستم اجرا بشه ، هرکدوم حافظه جدایی رو به خودشون تخصیص میدن اما من تو همین سیستم خودم هم زمان با دو تا user لاگین کردم و یه دکمه هم روی فرم گذاشتم که مقدار اون متغیر سراسریه رو نشون بده .

    وقتی کاربر دوم لاگین شد دیگه نام کاربری user دومم نمایش داده میشد یعنی مقدار اون متغیره عوض شده بود .

    نمیدوم اصلا این تست درست بوده یا نه اما اگه تو شبکه هم این جوری باشه دیگه شرطی که نوشتید معنا نداره.

    Select * From Message Where Recipient='Username' or Recipient='all'

  22. #22
    کاربر دائمی آواتار C Sharp
    تاریخ عضویت
    مرداد 1389
    محل زندگی
    System.Object
    پست
    101

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

    داخل یه نمونه اجرا شده از سیستم دوبار لاگین کردین ؟
    چرا همچین کاری باید انجام بشه ؟
    اصولیش اینه که وقتی کسی میخواد با یه ID لاگین بشه ، ID قبلیش از سیستم خارج بشه
    بعنوان نمونه میتونید به مسنجرها توجه کنین، شما وقتی میخوای با یه ID دیگه وارد بشی ، باید اول ID قبلی رو Disconnect کنین
    چرا راه دور بریم ،تو همین سایت اگه شما دو تا username داشته باشین ، غیر از اینه که اول باید خارج بشید تا بتونید با username دومتون وارد بشین ؟

    اگه منظورتون اینه که کاربرای متفاوت تو یه نمونه ازسییتم لاگین کنن که خیلی ایده عجیبیه !
    چون در اینصورت اگه فرض کنیم مشکل متغیر سراسری حل بشه ، اونوقت به تعداد کاربراتون به موس و کیبورد و مانیتور نیاز دارین

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

    در هرصورت هر کاربر باید یه نمونه مجزا رو برای استفاده اجرا کنه

  23. #23
    کاربر تازه وارد
    تاریخ عضویت
    خرداد 1389
    محل زندگی
    tehran
    پست
    37

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

    دوست عزیز به نظر میاد شما سعی دارید کاری مثل کار کوکی ها تو وب بکنید. خوب در این صورت مشخص هست که نمیتونید دوتا یوزر رو از یک جا online کنید. مگر اینکه هر کس اومد یک کوکی به اسم خودش ایجاد بشه و همینطور خونده بشه که منطقی نیست. اما شدنی هست.
    برای اینکار منم سیستم دیتا بیس رو پیشنهاد میکنم چون کلا خیلی کارو ساده و کوتاه میکنه...

  24. #24

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

    1) من قراره دیتابیسمو رو یه سیستم بریزم و بقیه با connection string به اون وصل بشن.
    2) قرار نیست از یه سیستم دو تا یوسر بتونن login کنن علت کاری که کردم این بود که تست کنم ببینم آیا همون طور که شما جناب Csharp گفتین در حالت غیر شبکه برای هر کاربر مقدار متغیر سراسریه متفاوته یا نه.
    3) قراره هر کی login کرد username اش تو یه متغیر سراسری ریخته میشه تا تو فرمهای دیگم اطلاعات همون شخصو نشون بدم.(یادداشتهایی که هر کی به عنوان یادآوری واسه خودش گذاشته)
    مشکلی که من داشتم این بود که میخواستم بدونم چون متغیر سراسریه اگه یه کاربر دیگه از یه سیستم دیگه login کنه مقدار متغیر سراسری ، Usename ِ اون میشه و از این به بعد تو فرم تمام کاربران ِ On اطلاعات اون شخص تازه وارد نمایش داده میشه یا هر یوسر متغیر سراسریش مخصوص خودشه و هیچکس نمیتونه به خاطر سراسری بودن متغیر ، مقدار اونو تغییر بده.
    با فرض اینکه حرف شما دوستان عزیزم درسته و هیچ مشکلی پیش نمیاد ، از شما بزرگوارا یه سوال دیگه داشتم : استفاده از متغیر سراسری واسه حفظ یوسر کاربر جهت استفاده در فرمای دیگه روش درستیه ؟در Win App یه چیزی مثل Session یا به قول دوستمون کوکی در وب وجود نداره که با اون بتونم تو هر فرمم بدونم این فرمو کی login کرده و نیازی نباشه متغیر سراسریه رو از این فرم به اون فرم پاس بدم؟
    با تشکر و سپاس

  25. #25
    کاربر دائمی آواتار C Sharp
    تاریخ عضویت
    مرداد 1389
    محل زندگی
    System.Object
    پست
    101

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

    اگه توی کلاس Program (یا هر کلاس دیگه ای ) یه Property استاتیک تعریف کنید ، میتونید از هرجایی تو برنامه تون ازش استفاده کنین


    static class Program
    {
    private static User _user;
    public static User User
    {
    get { return _user; }
    }
    [STAThread]
    static void Main()
    {
    Authenticator authenticator = new Authenticator();
    LoginForm login = new LoginForm(authenticator);
    if (login.ShowDialog() != DialogResult.OK)
    return;
    _user = authenticator.User;
    Application.Run(new MainForm());
    }
    }




    public struct User
    {
    private string _username;
    private string _fullName;
    public string Username
    {
    get { return _username; }
    }
    public string FullName
    {
    get { return _fullName; }
    }
    public User(string username, string fullName)
    {
    _username = username;
    _fullName = fullName;
    }
    }




    ...
    labelUsername.Text = Program.User.Username;
    ...


  26. #26

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

    1.اگه میشه هر کدام از خطوط داخل تابع Main رو توضیح بدید.
    2. اگه تونستید همینو برام به صورت یه sample بزارید.


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

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