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

نام تاپیک: جلوگیری از ورود به آزمون آنلاین با مرورگر دیگر

  1. #1

    Question جلوگیری از ورود به آزمون آنلاین با مرورگر دیگر

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

  2. #2

    نقل قول: جلوگیری از ورود به آزمون آنلاین با مرورگر دیگر

    یعنی هیچ کس در این زمینه کار نکرده. دوستان اگه چیزی به ذهنتون میرسه لطفا راهنمایی کنید.

  3. #3

    نقل قول: جلوگیری از ورود به آزمون آنلاین با مرورگر دیگر

    یک راهش اینه که
    شماره کاربری (UserId) و به همراه اسم مرورگرش ذخیره کنی

    HttpBrowserCapabilitiesBase browser = baseRequest.Browser;
    string b = browser.Browser + " " + browser.Version;


    بعد چک کنی که اگر این کاربر ، ازمون شماره 5 رو با این مرورگر باز کرده (کد بالا بهت مرورگر کاربر رو میده)
    بهش اجازه ندی با مرورگر دیگه باز بکنه

  4. #4

    نقل قول: جلوگیری از ورود به آزمون آنلاین با مرورگر دیگر

    ولی در کل ، به نظر میاد مهم اینه که هر کاربر یک بار در یک آزمون شرکت کنه
    شما میتونی در زمان لود ازمون ، و قبل از ذخیره نتیجه ازمون چک کنی ، اگر این کاربر قبلا در ازمون مثلا شماره 5 شرکت کرده
    بهش پیغام بدی
    که شما قبلا با این کد پیگیری در این ازمون شرکت کرده اید ، لطفا تقلب ننماییید !!

  5. #5

    نقل قول: جلوگیری از ورود به آزمون آنلاین با مرورگر دیگر

    نقل قول نوشته شده توسط Mag-Mag مشاهده تاپیک
    یک راهش اینه که
    شماره کاربری (UserId) و به همراه اسم مرورگرش ذخیره کنی

    HttpBrowserCapabilitiesBase browser = baseRequest.Browser;
    string b = browser.Browser + " " + browser.Version;


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

  6. #6

    نقل قول: جلوگیری از ورود به آزمون آنلاین با مرورگر دیگر

    باید این کار رو با event های فایل global.asax انجام بدی
    Session_Start و Session_End و Application_Start و Application_End

    زمانی که کاربر برای اولین بار میاد توی Session_Start مقدار یوزر ای دی رو با مرورگرش ذخیره کن
    توی Session_End این مقادیر رو جذف کن


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

    من اگر میخواستم این کد رو بنویسم
    در Session_Start مقدار شماره کاربری و نام مرورگرش رو ذخیره میکردم
    در Session_End هم این مقادیر رو حذف میکردم
    اینطوری میفهمم چه کاربری با چه مرورگری انلاین هست

    بعد وقتی روی ازمون کلیک میکرد

    1-زمان لود اطلاعات ازمون چک میکردم ، ایا این کاربر قبلا با مرورگر دیگری سایت رو باز کرده ؟ (اگر نه که هیچی ، اگر اره بهش پیغام میدادم شما سشن فعالی در مرورگر فایر فاکس دارید ، لطفا ابتدا از اون خارج شوید) - با همون مقادیری که در سشن استارت ذخیره کردم
    2-هر چند ثانیه یک بار (مثلا یک دقیقه) به صورت اتومات اطلاعات ازمون رو ذخیره میکردم - موقع بستن مرورگر هم با یک event جاوا بهش مثلا پیغام میدادم ایا مطمئنی؟

    window.addEventListener("beforeunload", function (e) {
    var confirmationMessage = "\o/";

    (e || window.event).returnValue = confirmationMessage; //Gecko + IE
    return confirmationMessage; //Webkit, Safari, Chrome
    });


    3-زمان لود کردن اطلاعات ازمون چک میکردم ، اگر این کاربر اطلاعاتی از این ازمون رو قبلا جواب داده (با اون ذخیره اتوماته) اونا رو لود میکردم
    4-موقع زدن دکمه ثبت نهایی ازمون ، یک فیلد توی جدول ازمون این کاربر ست میکردم ، که این دیگه ازمون رو نهایی کرده ، و دیگه بهش اجازه ویرایش نده

    ولی در کل درک نمی کنم ، چرا نمی خواید اجازه بدید ، کاربر ازمون رو با دوتا مرورگر باز نکنه؟
    مهم اینه که با هرکدوم زوتر دکمه ثبت نهایی ازمون رو بزنه (دکمه ذخیره) همون اطلاعات ذخیره میشه

    و با مرورگر بعدی که ذخیره بزنه
    چون قبل از ذخیره چک میکنید این کاربر در این ازمون شرکت کرده یا نه (اینو موقع لود آزمون هم باید چک کنید) اطلاعاتی ذخیره نمیشه

  7. #7

    نقل قول: جلوگیری از ورود به آزمون آنلاین با مرورگر دیگر

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

  8. #8

    نقل قول: جلوگیری از ورود به آزمون آنلاین با مرورگر دیگر

    خیلی خیلی ممنونم از وقتی که گذاشتی. یه مسئله: نوع مرورگر برام مهم نیست. میخوام کاربر در یک زمان روی یک آزمون فقط یک صفحه باز کنه چون من با هربار زدن دکمه های بعدی و قبلی سوالات جوابشو در پایگاه داده ذخیره می کنم که اگه مرورگر رو بست و هنوز 20 دقیقه از زمان آزمونش مونده بود بتونه توی این 20 دقیقه دوباره وارد شه و ادامه بده و وقتی وارد شد جوابهای قبلی که داده بود دوباره لود میشه. اگه دو تا صفحه از آزمون باز کنه یکم کار رو خراب می کنه.
    تو این راه حل شما اگه دوتا مثلا کروم باز کرده بود بهش خطا نمیده و میذاره این کارو بکنه در حالیکه باید جلوشو بگیرم. چیکار کنم به نظرتون؟
    راهی هست که اطلاعاتی تو پایگاه داده ذخیره کنم و موقع بستن مرورگر حذف کنم؟

  9. #9

    نقل قول: جلوگیری از ورود به آزمون آنلاین با مرورگر دیگر

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


    protected void Page_Load(object sender, EventArgs e)
    {
    if (Session["PageOpened"] != null)
    {
    // The page is already opened in another tab.
    }
    else { Session["PageOpened"] = true; }
    }


    بعد بالای صفحه ازمونت چک کن ، اگر این سشن مقدار داره ، یعنی صفحه در تب دیگه ای بازه
    البته برای اینکه کارت راحت تر بشه ، میشه اون سشنت به جای مقدار TRUE یک شمارنده باشه
    و هر وقت 1 هست ، یعنی یک بار لاگین کرده

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

    ولی زمانی که مرورگر رو میبنده (اون کد قبلی که برات گذاشتم)
    باید سشن رو خالی کنی

    چک های اضافی تر هم باید بکنی
    مثلا کاربر میتونه ادرس ازمون رو کپی کنه توی یک تب دیگه
    خوب در این صورت مقدار (Request.UrlReferrer) نال هست و می تونی جلوش رو بگیری


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

    چون به نظرم راهی نداره ، که به فهمی این کاربر الان چنتا تب از سایت تو رو باز داره
    چون سشن ها بین تب های یک مرورگر مشترکه

    و باید با ست کردن یکسری موارد
    جلوش رو بگیری

    مثلا مثل همین راه حل
    مجبورش کنی ، حتما قبل از ازمون بره توی یک صفحه و از اونجا بره توی صفحه ازمون
    و توی اون صفحه parent یک مقدار ست کنی
    و توی صفحه ازمون چک کنی اون مقدار ست شده باشه
    و Request.UrlReferrer هم مساوی اون Parent باشه

  10. #10

    نقل قول: جلوگیری از ورود به آزمون آنلاین با مرورگر دیگر

    واقعا لطف کردی. فقط چه طوری سشن رو حذف کنم موقع بستن مرورگر؟

  11. #11

    نقل قول: جلوگیری از ورود به آزمون آنلاین با مرورگر دیگر

    سلام
    به نظر من شما باید طرف مقابلتون رو متقاعد کنید که برگذاری آزمون آنلاین اینترنتی چهارچوبی داره که باید طبق اون برید جلو .
    با این حالتی که تعریف کردید بطور مثال :
    اگر فرض بر این باشه که کاربر هر بار فقط یک سوال رو میبینه و باید جواب بده که بره مرحله بعد . اگر کاربر شما بیاد تو صفحه آزمون و سوال رو بخونه ، اینترنت رو قطع کنه و مرورگر رو ببنده . بره و جواب رو پیدا کنه و باز بیاد Login کنه و مثلا پاسخ سوال 1 رو داد . چقدر زمان برای در نظر گرفته شده ! 5 ثانیه .
    و همینطور سوالات رو یکی بعد از دیگری جواب بده !!!

    به نظر من برای این موضوع شما باید قوانینی رو در نظر بگیرید .

    بهترین حالت برای شما "زمان آزمون" هست . یعنی مثلا از ساعت 15:00 الی 15:45 برای ورود و پاسخ به سوالات وقت بدید .

    موفق باشید...

  12. #12

    نقل قول: جلوگیری از ورود به آزمون آنلاین با مرورگر دیگر

    نقل قول نوشته شده توسط Tekyegah مشاهده تاپیک
    سلام
    به نظر من شما باید طرف مقابلتون رو متقاعد کنید که برگذاری آزمون آنلاین اینترنتی چهارچوبی داره که باید طبق اون برید جلو .
    با این حالتی که تعریف کردید بطور مثال :
    اگر فرض بر این باشه که کاربر هر بار فقط یک سوال رو میبینه و باید جواب بده که بره مرحله بعد . اگر کاربر شما بیاد تو صفحه آزمون و سوال رو بخونه ، اینترنت رو قطع کنه و مرورگر رو ببنده . بره و جواب رو پیدا کنه و باز بیاد Login کنه و مثلا پاسخ سوال 1 رو داد . چقدر زمان برای در نظر گرفته شده ! 5 ثانیه .
    و همینطور سوالات رو یکی بعد از دیگری جواب بده !!!

    به نظر من برای این موضوع شما باید قوانینی رو در نظر بگیرید .

    بهترین حالت برای شما "زمان آزمون" هست . یعنی مثلا از ساعت 15:00 الی 15:45 برای ورود و پاسخ به سوالات وقت بدید .

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

  13. #13

    نقل قول: جلوگیری از ورود به آزمون آنلاین با مرورگر دیگر

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

    مثلا اینطوری

  14. #14

    نقل قول: جلوگیری از ورود به آزمون آنلاین با مرورگر دیگر

    نقل قول نوشته شده توسط Mag-Mag مشاهده تاپیک
    توی اون کد بالا که موقع بسته شدن مرورگر پیام میده
    باید با آزاکس یک تابع سمت سرور رو فراخونی کنی

    مثلا اینطوری
    این تابعی که گفتید موقع بستن مرورگر پیغام میده برای من کار نمیکنه باید کد دیگری هم نوشت؟ (من داخل تگ script ودر هد صفحه گذاشتمش):
    window.addEventListener("beforeunload", function (e) {
    var confirmationMessage = "\o/";

    (e || window.event).returnValue = confirmationMessage; //Gecko + IE
    return confirmationMessage; //Webkit, Safari, Chrome
    });


  15. #15

    نقل قول: جلوگیری از ورود به آزمون آنلاین با مرورگر دیگر

    بهتره در انتهای صفحه بعد از جایی که Jquery.js رو به صفحه ات ادد کردی بنویسی


    <script language="javascript" type="text/javascript" src="Scripts/jquery-1.8.2.js"></script>
    <script language="JavaScript">
    window.addEventListener("beforeunload", function (e) {
    var confirmationMessage = "\o/";
    (e || window.event).returnValue = confirmationMessage; //Gecko + IE
    return confirmationMessage; //Webkit, Safari, Chrome

    });
    </script>

  16. #16

    نقل قول: جلوگیری از ورود به آزمون آنلاین با مرورگر دیگر

    نقل قول نوشته شده توسط Mag-Mag مشاهده تاپیک
    بهتره در انتهای صفحه بعد از جایی که Jquery.js رو به صفحه ات ادد کردی بنویسی


    <script language="javascript" type="text/javascript" src="Scripts/jquery-1.8.2.js"></script>
    <script language="JavaScript">
    window.addEventListener("beforeunload", function (e) {
    var confirmationMessage = "\o/";
    (e || window.event).returnValue = confirmationMessage; //Gecko + IE
    return confirmationMessage; //Webkit, Safari, Chrome

    });
    </script>
    واقعاسپاسگزارم.فقط یه سوال دیگه (ببخشید که خیلی می پرسم) این تابع موقع رفرش صفحه هم اجزا میشه نمیشه کاری کرد که این طور نشه؟ (فقط موقع بستن اجرا شه)

  17. #17

    نقل قول: جلوگیری از ورود به آزمون آنلاین با مرورگر دیگر

    باید کاربرها با شرایط شما کنار بیان

    تمام این توابع که دوستان میگن با قطع شدن اینترنت کاربر شما هیچ گونه تشخصی نمیتونید بدید ...

    میتونه هم اینترنت قطع شده باشه ، هم برق رفته باشد ... هم مرورگر رو بسته باشه ...

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

تاپیک های مشابه

  1. سوال: راهی برای جلوگیری از ورود به سایت با توایع curl هست ؟
    نوشته شده توسط blue.web9 در بخش PHP
    پاسخ: 5
    آخرین پست: جمعه 14 اسفند 1394, 18:14 عصر
  2. پاسخ: 1
    آخرین پست: پنج شنبه 10 اردیبهشت 1394, 08:55 صبح
  3. سوال: جلوگیری از ورود به سایت با استفاده از ip
    نوشته شده توسط farnaz.saeedi در بخش PHP
    پاسخ: 1
    آخرین پست: سه شنبه 25 بهمن 1390, 12:40 عصر
  4. جلوگیری از ورود به سایت
    نوشته شده توسط teardrop در بخش C#‎‎
    پاسخ: 0
    آخرین پست: سه شنبه 16 آذر 1389, 10:23 صبح
  5. سوال: جلوگیری از ورود داده های تکراری با CustomValidator
    نوشته شده توسط abdonsd در بخش ASP.NET Web Forms
    پاسخ: 4
    آخرین پست: پنج شنبه 08 بهمن 1388, 23:16 عصر

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

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