سؤال

أقوم بتطوير موقع ويب ASP.NET وأنا لا أستخدم عناصر التحكم في المصادقة في ASP.NET. لقد قمت بإنشاء جداول يدويًا للمستخدمين للموقع.

ما أريده على النحو التالي

  • بعد تسجيل الدخول يمكن للمستخدم الوصول إلى الصفحات (التي تم القيام بها بالفعل)
  • عندما يضغط المستخدم على تسجيل الخروج (ينتقل المستخدم إلى صفحة محددة - مثال - default.aspx)
  • الآن عندما يضغط المستخدم على زر "Back" للمتصفح ، يجب ألا يذهب إلى الصفحة السابقة (يتم ذلك في صفحات Yahoo - أريد تنفيذ نفس الشيء)
هل كانت مفيدة؟

المحلول

لمنع المستخدمين من رؤية الصفحة السابقة عند الضغط على زر العودة ، تحتاج إلى توجيه المتصفح بعدم تخزين هذه الصفحة:

Response.Cache.SetExpires(DateTime.UtcNow.AddDays(-1));
Response.Cache.SetValidUntilExpires(false);
Response.Cache.SetRevalidation(HttpCacheRevalidation.AllCaches);
Response.Cache.SetCacheability(HttpCacheability.NoCache);
Response.Cache.SetNoStore();

يمكنك وضع هذا الرمز في جميع الصفحات المصادقة ، وبالتالي منعها من التخزين المؤقت على متصفحات العميل.

نصائح أخرى

لكي لا يتم تخزين صفحة ما ، يحتاج المتصفح إلى الاستجابة بشكل مناسب لتعليمات التخزين المؤقت ، ولكن لا يوجد ما يضمن أن هذا سيعمل على كل متصفح! (يمكن لأي شخص شرير بشكل مناسب كتابة متصفحه الخاص لتجاهل معلومات التخزين المؤقت ، أو كتابة وكيل لتجريده ...)

لذلك لا يمكنك الحصول على هذا للعمل بنسبة 100 ٪ من الوقت ، لكنك ستواجه دائمًا المشكلة التي يمكن للمستخدم التقاط لقطة شاشة بسهولة ، وطباعة صفحة ، وإنقاذ نسخة على القرص ، وما إلى ذلك. لقد أطعمت صفحة لهم على أي حال ...

إجابة سؤالك هي:

  • عندما يكون المستخدم اضغط على تسجيل الخروج. (ينتقل المستخدم إلى صفحة محددة - مثال - Default.aspx) يمكنك إضافة LinkButton كرابط تسجيل الدخول وفي معالج الأحداث النقر ، يمكنك كتابة Response.redirect ("default.aspx") ؛

  • في الوقت الحالي ، عندما يضغط المستخدم على زر "Back" للمتصفح ، يجب ألا ينتقل إلى الصفحة السابقة // إضافة الرمز التالي إلى الكود الخاص بك خلف الصفحة

    التجاوز المحمي باطل OnPrerender (EventArgs E)

    {

     base.OnPreRender(e);
    string strDisAbleBackButton;
    strDisAbleBackButton = "<script language="javascript">\n";
    strDisAbleBackButton += "window.history.forward(1);\n";
    strDisAbleBackButton += "\n</script>";
    ClientScript.RegisterClientScriptBlock(this.Page.GetType(), "clientScript", strDisAbleBackButton);
    

    }

الرجوع إلى csharpdotnetfreak.blogspot.com

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top