تبلیغات :
ماهان سرور
آکوستیک ، فوم شانه تخم مرغی ، پنل صداگیر ، یونولیت
دستگاه جوجه کشی حرفه ای
فروش آنلاین لباس کودک
خرید فالوور ایرانی
خرید فالوور اینستاگرام
خرید ممبر تلگرام

[ + افزودن آگهی متنی جدید ]




صفحه 1 از 2 12 آخرآخر
نمايش نتايج 1 به 10 از 11

نام تاپيک: Log_User

  1. #1
    پروفشنال
    تاريخ عضويت
    Nov 2007
    پست ها
    546

    14 Log_User

    بسم الله الرحمن الرحيم با عرض سلام و ادب براي log کردن يوزر در پايگاه داده معمولا چه مواردي رو لحاظ ميکنند؟ با سپاس فراوان

  2. #2
    کاربر فعال تالار .Net senaps's Avatar
    تاريخ عضويت
    Jul 2008
    محل سكونت
    خونمون
    پست ها
    4,547

    پيش فرض

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

    همچنین تغییراتی که در سیستم و نرم افزار انجام میدن رو هم گاهی لوگ گرفتم!!!

    میگم کلا بستگی داره که چی باشه هدف برنامه و هدف لوگ گرفتن چی باشه...!!!

  3. #3
    پروفشنال
    تاريخ عضويت
    Nov 2007
    پست ها
    546

    پيش فرض

    بسم الله الرحمن الرحيم با سلام بينهايت از پاسختون ممنون از اينکه فرموديد در يه فايل لاگ رو انجام ميديد متوجه منظورتون نشدم. اگه امکان داره با جزئيات توضيح بفرمائيد. با سپاس فراوان

  4. #4
    کاربر فعال تالار .Net senaps's Avatar
    تاريخ عضويت
    Jul 2008
    محل سكونت
    خونمون
    پست ها
    4,547

    پيش فرض

    بسم الله الرحمن الرحيم با سلام بينهايت از پاسختون ممنون از اينکه فرموديد در يه فايل لاگ رو انجام ميديد متوجه منظورتون نشدم. اگه امکان داره با جزئيات توضيح بفرمائيد. با سپاس فراوان

    سلام....
    عرض شود که ذخیره کردن لاگ در دیتابیس، باعث میشه که حجمش سریعا بره بالا!!! در برخی موارد البته لازمه ذخیره در دیتابیس! و خیلی ها اینکارو برای بخش های حساسشون انجام میدن!
    ولی ذخیره در فایل، ذخیره کردن لاگ ها در یک فایل متنی هستش! که ما تاریخ(تاریخ و ساعت) انجام کار و نام کاربری که کار رو انجام میده، گاهی اوقات نیازه که ip اش، و کاری که انجام داده رو در یک خط در یک فایل مشخص لاگ ذخیره میکنیم!!! فایل لاگ هم میتونه هر جای سیستم ایجاد بشه...

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

    ولی ورود و خروج کاربرهام، چون تعدادشون زیاده رو در داخل یک فایل LoginLog ذخیره میکنم! همچنین در صورت نیاز،فایل FaildLogin رو هم دارم که بهم کمک میکنه زیر نظر بگیرم که چه کاربری رمز عبورش رو زیاد اشتباه وارد کرده و یا اینکه چه نام های کاربریی در خطر -- شدن قرار دارن!! ک این کار رو توی یه فایل تکست معمولی ولی با فرمت tbh انجام میدم! اسم فرمت مهم نیست که چی باشه... ولی اگر از txt استفاده کنی، هرکسی میدونه فایل متنیه و ممکنه بخواد دستکاریش بکنه!

    اگر ابهامی بود، در خدمتتون هستم....
    ----------------
    هر چی سیستم بزرگ تر میشه، نیاز به لاگ گرفتن ها برای حرفه‌ای تر شدن کار هم بیشتر احساس میشه.... ای‌کاش دوستان دیگه هم تو بحث شرکت بکنن و تجاربشون رو در میون بذارن با ما تا بهتر کار کنیم...
    همچنین اگر کسی کلاس مشخصی داره برای این کار، و میتونه به اشتراک بذاره!(من دارم ولی نمیشه به اشتراک گذاشت!!) بذاره یا اینکه با هم یه کلاس بنویسیم که بتونیم ازش استفاده بکنیم برای لاگ گرفتن....

  5. #5
    پروفشنال
    تاريخ عضويت
    Nov 2007
    پست ها
    546

    پيش فرض

    بسم الله الرحمن الرحيم با سلام بينهايت از پاسختون سپاسگزارم اگه براتون امکان داشت لطفا قدم به قدم مثالي رو پيش ببريد تا همه چي شفاف تر شه. با سپاس

  6. #6
    کاربر فعال تالار .Net senaps's Avatar
    تاريخ عضويت
    Jul 2008
    محل سكونت
    خونمون
    پست ها
    4,547

    پيش فرض

    سلام....
    رفیق راستش نگرفتم که کدوم قسمت رو مثال بزنم؟ کد نویسی رو یا جاهایی که لوگ می‌گیریم با مثال برنامه یا چی؟!

  7. #7
    پروفشنال
    تاريخ عضويت
    Nov 2007
    پست ها
    546

    پيش فرض

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

  8. #8
    کاربر فعال تالار .Net senaps's Avatar
    تاريخ عضويت
    Jul 2008
    محل سكونت
    خونمون
    پست ها
    4,547

    پيش فرض

    سلام....

    عرض شود که خوب، چیزایی که نیازه اینه که بدونی کی(who)، کی(when) چه کاری رو انجام داد! بنابراین گرفتن نام کاربری(در برنامه های چند کاربره! و اگر برنامه نام کاربری نداره که لازم نیست!! این قسمت...) زمان و کاری که انجام داده اصل کار ما هستش و معمولا کافیه....
    یه خط تو فایل لاگ ها به این صورت در میاد نهایتا:

    senaps Added a book in favorites in 10/29/2012 11:59pm
    اینجوری میشه فهمید که چکار کردیم.... بنابراین من میتونم حذف از فیوریت ها رو هم ذخیره کنم!
    گاهی برنامه‌ی ما تحت شبکه هم هستش.... بنابراین ممکنه یه کارمند با اکانت یکی دیگه بیاد و یه کاری رو بکنه!!! مثلا توی یه بانک یا هرجای دیگه.... میشه ip رو گرفت و ذخیره کرد در کنار متن بالا.... یا فک کنم بشه حتی مک ادرس رو هم ذخیره کرد که اگر بشه هردو رو گرفت بهتره!! من شخصا فقط ip رو ذخیره میکنم که میشه این:
    senaps Added a book in favorites in 10/29/2012 11:59pm 192.168.0.5
    اینجوری اگر کاری انجام گرفت و خواستیم پی‌گیری بکینم و مثلا کاربر senaps گفت من نبودم، چک می‌کنیم ببینیم چه ip ای اون کار رو انجام داده... که معمولا میتونه کمک کننده و قابل استناد هم باشه!!!
    یا مثلا، برای لاگین کردن های اشتباه:
    senaps used wrong password in 10/29/2012 11:55pm 192.168.0.5
    senaps used wrong password in 10/29/2012 11:56pm 192.168.0.5
    senaps used wrong password in 10/29/2012 11:56pm 192.168.0.5
    senaps used wrong password in 10/29/2012 11:57pm 192.168.0.5
    senaps used wrong password in 10/29/2012 11:57pm 192.168.0.5

    و بعد من مدیر سیستم میام چک میکنم می‌بینم که ip کاربر senaps اصلا این نیست.... پس می‌فهمم که یه کارمند دیگه سعی داره وارد اکانت این کاربر بشه... یا ip سیستم خود سیناپسه و من می‌فهمم که این ادم پسوردش رو معمولا فراموش میکنه!! در هر دو حالت، میشه به طرف هشدار داد و بهش راهنمایی داد برای انتخاب و به خاطر سپردن رمز های عبور درست که -- هم نشه!!!


    برای پیاده سازی هم من به این شکل کار کردم که:
    1- یک کلاس دارم...
    2- برای هر کدوم از فایل های لاگی که میخوام درست بکنم، یک یا چند تابع مختلف محاسباتی دارم...
    3- موقع گرفتن لاگ، در اخرین مرحله‌ی try (در قسمتی که try catch میذارم برا کدم که خطاها رو بگیره!!) تابع مربوط به اون لاگ رو فرامیخونم که پارامتر ورودیش یه استرینگ با متن دلخواه منه...
    4- تابع شامل format ی از استرینگ هستش....string.format که قبلا نام کاربری و تاریخ و ... رو میگیره و در نهایت هم پارامتر ورودی رو و داخل فایل ذخیره میکنه که استریم رایتر میباشه!!

    همین کار رو برای لاگ گرفتن دیتابیسی هم میشه انجام داد به این صورت که به جای ذخیره در فایل، هر کدوم از قسمت های مختلف نام کاربری و تاریخ و فعل انجام شده رو به فیلد های متناظرشون در پایگاه داده می‌فرستیم!!(من با لینک شما با هایبرنیت یا هر تکنولوژیی که استفاده میکنین برای ارتباط با دیتابیس حتی Ado.net که معمول ترین در ایرانه!)...

  9. 2 کاربر از senaps بخاطر این مطلب مفید تشکر کرده اند


  10. #9
    پروفشنال
    تاريخ عضويت
    Nov 2007
    پست ها
    546

    پيش فرض

    بسم الله الرحمن الرحيم با سلام از توضيحاتتون بسيار سپاسگزارم ان شاالله در اين زمينه بيشتر تحقيق ميکنم. ممنون

  11. #10
    کـاربـر بـاسـابـقـه szh_1367's Avatar
    تاريخ عضويت
    Apr 2007
    پست ها
    1,007

    پيش فرض

    سلام....

    عرض شود که خوب، چیزایی که نیازه اینه که بدونی کی(who)، کی(when) چه کاری رو انجام داد! بنابراین گرفتن نام کاربری(در برنامه های چند کاربره! و اگر برنامه نام کاربری نداره که لازم نیست!! این قسمت...) زمان و کاری که انجام داده اصل کار ما هستش و معمولا کافیه....
    یه خط تو فایل لاگ ها به این صورت در میاد نهایتا:

    senaps Added a book in favorites in 10/29/2012 11:59pm
    اینجوری میشه فهمید که چکار کردیم.... بنابراین من میتونم حذف از فیوریت ها رو هم ذخیره کنم!
    گاهی برنامه‌ی ما تحت شبکه هم هستش.... بنابراین ممکنه یه کارمند با اکانت یکی دیگه بیاد و یه کاری رو بکنه!!! مثلا توی یه بانک یا هرجای دیگه.... میشه ip رو گرفت و ذخیره کرد در کنار متن بالا.... یا فک کنم بشه حتی مک ادرس رو هم ذخیره کرد که اگر بشه هردو رو گرفت بهتره!! من شخصا فقط ip رو ذخیره میکنم که میشه این:
    senaps Added a book in favorites in 10/29/2012 11:59pm 192.168.0.5
    اینجوری اگر کاری انجام گرفت و خواستیم پی‌گیری بکینم و مثلا کاربر senaps گفت من نبودم، چک می‌کنیم ببینیم چه ip ای اون کار رو انجام داده... که معمولا میتونه کمک کننده و قابل استناد هم باشه!!!
    یا مثلا، برای لاگین کردن های اشتباه:
    senaps used wrong password in 10/29/2012 11:55pm 192.168.0.5
    senaps used wrong password in 10/29/2012 11:56pm 192.168.0.5
    senaps used wrong password in 10/29/2012 11:56pm 192.168.0.5
    senaps used wrong password in 10/29/2012 11:57pm 192.168.0.5
    senaps used wrong password in 10/29/2012 11:57pm 192.168.0.5

    و بعد من مدیر سیستم میام چک میکنم می‌بینم که ip کاربر senaps اصلا این نیست.... پس می‌فهمم که یه کارمند دیگه سعی داره وارد اکانت این کاربر بشه... یا ip سیستم خود سیناپسه و من می‌فهمم که این ادم پسوردش رو معمولا فراموش میکنه!! در هر دو حالت، میشه به طرف هشدار داد و بهش راهنمایی داد برای انتخاب و به خاطر سپردن رمز های عبور درست که -- هم نشه!!!


    برای پیاده سازی هم من به این شکل کار کردم که:
    1- یک کلاس دارم...
    2- برای هر کدوم از فایل های لاگی که میخوام درست بکنم، یک یا چند تابع مختلف محاسباتی دارم...
    3- موقع گرفتن لاگ، در اخرین مرحله‌ی try (در قسمتی که try catch میذارم برا کدم که خطاها رو بگیره!!) تابع مربوط به اون لاگ رو فرامیخونم که پارامتر ورودیش یه استرینگ با متن دلخواه منه...
    4- تابع شامل format ی از استرینگ هستش....string.format که قبلا نام کاربری و تاریخ و ... رو میگیره و در نهایت هم پارامتر ورودی رو و داخل فایل ذخیره میکنه که استریم رایتر میباشه!!

    همین کار رو برای لاگ گرفتن دیتابیسی هم میشه انجام داد به این صورت که به جای ذخیره در فایل، هر کدوم از قسمت های مختلف نام کاربری و تاریخ و فعل انجام شده رو به فیلد های متناظرشون در پایگاه داده می‌فرستیم!!(من با لینک شما با هایبرنیت یا هر تکنولوژیی که استفاده میکنین برای ارتباط با دیتابیس حتی Ado.net که معمول ترین در ایرانه!)...
    سلام

    هر کسی به طریقی اطلاعات مربوط به سیستمش رو چک و ذخیره می کند و من به نحوه چک کردن ان کار ندارم و بحثم روی ذخیره سازی

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

    برای اینکه حجم فایل اصلی رو کم کنند از اختصاص دادن یک شماره به خطا استفاده میشود به صورت که مثلا به جای اینکه بنویسند senaps شماره کاربری اون رو ذخره می کنند یا در مثالی دیگر به جای used wrong password in شماره این خطا ذخیره میشود و . . . .

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

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

  12. این کاربر از szh_1367 بخاطر این مطلب مفید تشکر کرده است


صفحه 1 از 2 12 آخرآخر

Thread Information

Users Browsing this Thread

هم اکنون 1 کاربر در حال مشاهده این تاپیک میباشد. (0 کاربر عضو شده و 1 مهمان)

User Tag List

قوانين ايجاد تاپيک در انجمن

  • شما نمی توانید تاپیک ایحاد کنید
  • شما نمی توانید پاسخی ارسال کنید
  • شما نمی توانید فایل پیوست کنید
  • شما نمی توانید پاسخ خود را ویرایش کنید
  •