PDA

View Full Version : سوال: تعیین تعداد و سطح دسترسی کاربران در حال کار با سیستم



top7news
سه شنبه 24 اردیبهشت 1387, 22:44 عصر
سلام به همه برنامه نویسای گل
امیدوارم موضوع تاپیک و سئوالم رو درست انتخاب کرده باشم ،
من دارم روی یه پروژه که قراره تو یک شبکه محلی چند کاربره اجرا بشه کار می کنم (البته احتمالا بچه های ثابت سایت دیگه تا حالا اینو میدونن چون من خیلی سئوال اینجا پرسیدم)

حالا یه سئوال دیگه برام پیش اومده ( علاوه بر اینکه خیلی از سئوالای قبلیم هنوز بی پاسخ مونده یا نصفه نیمه جواب گرفتم)

توضیحات : من توی بانکم یه جدول دارم به اسم ساعت کاری کارمندان که بر اساس اون میزان کار کارمندان و حقوق اونها محاسبه میشه ،
حالا فرض کنید 5 تا کاربر داریم که شامل یه مدیر ، یه پذیرش و 3 تا کارمند حسابداری میشن و هر کدوم از این کارمندا موقع خروج از سیستم باید روی دکمه Exit کلیک کنن ،

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

hozouri
چهارشنبه 25 اردیبهشت 1387, 10:22 صبح
چند راه حل پیشت هست اگه در برنامه قسمت ورود کاربر وجود داره کد منحصر بفردش رو (که حتماً یادت نرفته ایجاد کنی) در حافظه برنامه نگهدار و موقعی که کاربر از برنامه خارج شد یه رکورد جدید ثبت کن که بستگی به فیلدهای خودت داره مثل : کد کاربری , ساعت ورود , ساعت خروج و ...

top7news
پنج شنبه 26 اردیبهشت 1387, 14:42 عصر
ممنون از آقای حضوری
دوستای دیگه کسی در مورد سئوال من هیچ نظر یا راه حلی نداره؟؟
واقعا جالبه یا سئوال من خیلی پیش پا افتاده است یا شماها خیلی کم لطف.

smt_414
پنج شنبه 26 اردیبهشت 1387, 20:14 عصر
سلام


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

برای تعیین سطح دسترسی کاربران شما ، از چه شیوه ای استفاده کردید(نرم افزاری و یا بانک داده ای)؟


موفق باشید

hozouri
جمعه 27 اردیبهشت 1387, 09:41 صبح
دوست عزیز همیشه باید از کد منحصر به فرد استفاده کنی یکی از مهم ترین دلایلش هم اینه که شابد دو تا کاربر با یک نام , نام خانوادگی , نام پدر وجود داشته باشه که تنها راه مطلع شدن از نام کاربری کد منحصر بفردشه.

linux
جمعه 27 اردیبهشت 1387, 11:45 صبح
سلام به همه برنامه نویسای گل
امیدوارم موضوع تاپیک و سئوالم رو درست انتخاب کرده باشم ،
من دارم روی یه پروژه که قراره تو یک شبکه محلی چند کاربره اجرا بشه کار می کنم (البته احتمالا بچه های ثابت سایت دیگه تا حالا اینو میدونن چون من خیلی سئوال اینجا پرسیدم)

حالا یه سئوال دیگه برام پیش اومده ( علاوه بر اینکه خیلی از سئوالای قبلیم هنوز بی پاسخ مونده یا نصفه نیمه جواب گرفتم)

توضیحات : من توی بانکم یه جدول دارم به اسم ساعت کاری کارمندان که بر اساس اون میزان کار کارمندان و حقوق اونها محاسبه میشه ،
حالا فرض کنید 5 تا کاربر داریم که شامل یه مدیر ، یه پذیرش و 3 تا کارمند حسابداری میشن و هر کدوم از این کارمندا موقع خروج از سیستم باید روی دکمه Exit کلیک کنن ،

سوال اصلیه من اینه که چه طور به سیستم بگم که این کارمندی که داره خارج میشه کیه و سیستم اینو شخیص بده و توی جدول ساعت خروج رو ثبت کنه؟؟
در اصل من راهنمایی برای نوشتن کد این یه تیکه می خواستم
ممنون از توجهتون (اگه سئوالم سطح پایین بود از دوستای حرفه ای گلم معذرت میخوام)
شما بجای اینکه آخر سر چک کنی ببینی که کیه که در از برنامه خارج میشه اول باید کاربر را برای سیستم بشناسونی، این کاربر چطوری برنامه شما را اجرا می کند؟ آیا هر کسی دسترسی اجرای برنامه را دارد؟
شما احتیاج دارید که این جداول را به دیتابیس اضافه کنید،
1- کاربران :
کدکاربر،عدد،Identity ، اتونامبر
کدلاگین، تکست، منحصر بفرد
پسورد:تکست
نام
نام خانوادگی
سایر مشخصات، عکس و نمونه امضا و ...
2-گروه ها
کدگروه
نام گروه
سایر مشخصاتی که لازم دارید.
3-فعالیت های
کد فعالیت
نام فعالیت
کل کارهایی که ممکن توسط سیستم شما انجام بشه مثلا فرض کنید که شما 2 تا جدول ورود اطلاعات دارید بر اساس تصیمیم خودتان می توانید 3 فعالیت تعریف کنید یا 6 فعالیت، ثبت ، اصلاح، حذف.
4-کاربرگروه
کدکاربر
کدگروه
5-فعالیت گروه
کد فعالیت
کد گروه
با ترکیب این جداول شما هم می توانید دسترسی به بخش های مختلف برنامه خود را کنترل کنید، هم این کاری را که می خواهید انجام بدهید را کنترل کنید.

top7news
جمعه 27 اردیبهشت 1387, 13:53 عصر
سلام
ممنون از توجه همتون
اول لازمه بگم که من حق دسترسی ها رو توی خود برنامه مشخص می کنم ولی فکر کنم بد نباشه که توی بانکم هم حق دسترسی هایی رو برای کاربر ها بذارم؟درسته؟
جواب سئوالم هم این شد که پایین می خونید :

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

linux
جمعه 27 اردیبهشت 1387, 14:27 عصر
سلام
ممنون از توجه همتون
اول لازمه بگم که من حق دسترسی ها رو توی خود برنامه مشخص می کنم ولی فکر کنم بد نباشه که توی بانکم هم حق دسترسی هایی رو برای کاربر ها بذارم؟درسته؟
جواب سئوالم هم این شد که پایین می خونید :

من توی جدول مربوط به کارمند هام شماره کارمندی منحصر به فرد دارم که از روی اون میشه تشخیص داد که چه کسی در حال ورود و استفاده از سیستم هست ؟.
در مورد این مشکلم هم با دوستم مشورت کردم و همینطور از راه حل های شما دوستای عزیز هم استفاده کردم و فکر کنم حق با smt_414 عزیزه که من در موقع ورود هر کاربر همون موقع مشخص میکنم که کی داره از سیستم استفاده می کنه.
به این صورت که یه متغیر static تعریف می کنیم و در موقع ورود هر کاربر شماره پرسنلی اون کاربر توی اون متغیر قرار می گیره و تا موقع خروج اونجا هست .
موقعی که کاربر قصد خروج از سیستم داره ، برنامه میره و اون متغیره و چک میکنه و میفهمه که کی داره خارج میشه.
این راه حل خوبیه
ممنون از همتون.
تو کجای برنامه ات ذخیره می کنه؟! فکر کنم برنامه ات را فقط با توجه به شرایط موجود نوشتی، برای اضافه کردن یک کاربر جدید به برنامه چقدر باید کد بنویسی؟

top7news
جمعه 27 اردیبهشت 1387, 15:51 عصر
linox عزیز شاید اینم باید توضیح می دادم که هر کاربر با یک سیستم به برنامه متصل میشه و لازم نیست این متغیر توی جایی از بانک ذخیره بشه ، این نرم افزار تحت شبکه داخلی کار می کنه و به صورت سرور و کلاینت کار می کنه.
تنها ایرادشم اینه که اگه برق بره یا سیستم خاموش بشه این متغیر میپره که ما برای این مشکل هم یه فکری کردیم و اونم اینه که هر یک ساعت یه بار ساعت خروج از سیستم رو توی جدول update کرده و ساعت خروج رو تمدید کنیم.

smt_414
جمعه 27 اردیبهشت 1387, 16:28 عصر
سلام


من حق دسترسی ها رو توی خود برنامه مشخص می کنم

یک سوال
شما برای این عمل می بایست برای هر کاربر سطح کاربری رو مشخص کنید که این سطح کاربری هم باید در جایی مشخص بشه(ذخیره بشه)

اینطور در نظر بگیریم که شما در پایگاه تیبلی دارید محتص کاربران ، رمز عبور ....و همچنین تعیین سطح دسترسی اونها

با فرض صحت داشتن مطالب فوق و همچنین hash کردن رمز عبور و سطح دسترسی
آیا این احتمال که سطح کاربری admin برای user کپی شه (خرابکاری) وجود داره ؟


با تشکر

top7news
جمعه 27 اردیبهشت 1387, 17:02 عصر
smt_414 عزیز حدس شما درسته
ما یک جدول به اسم کاربران داریم که توش شناسه و رمز عبور کاربران ذخیره میشه که در صورت وارد کردن بیش از 3 بار اشتباره این رمز وارد یه حق دسترسی دیگه میشه به اسم پشتیبان سیستم که اون جدولش جداگانه است.
در اصل منظور من اینه که admin ما توی این سیستم کلا شناسه و رمز عبورش جداگانه ذخیره میشه و ما توی این سیستم سطح دسترسی هامون به پذیرش ، کارمند حسابداری و مدیر بخش تقسیم میشه که البته مدیر هم به همه کارهای سیستم (منظور کارهای امنیتی ) دسترسی نداره .
البته آره احتمال خراب کاری هست.