2009-09-25 13 views
5

मेरे पास ASP.NET में वेब साइट है। हम लॉगिन 1. उपयोगकर्ता के दो प्रकार 2. प्रशासकब्राउज़र का उपयोग कर साइनआउट के बाद हम वेब पेज दृश्य को कैसे रोक सकते हैं

मैं

समस्या बयान परीक्षण के दौरान समस्या का सामना करना पड़ रहा है निम्नलिखित: मान लीजिए मैं उपयोगकर्ता लॉगिन द्वारा loggedin और सभी पृष्ठों सर्फ, उपयोगकर्ता के किसी भी पृष्ठ पर मान लीजिए मैं लॉगआउट बटन पर क्लिक करता हूं, यह मुझे लॉगिन पेज पर रीडायरेक्ट करेगा।

अब समस्या जब मैं ब्राउज़र वापस का उपयोग करें, यह मुझे उपयोगकर्ता के पृष्ठ से पता चलता लेकिन वास्तविक में मैं लॉगआउट के बाद कि पृष्ठ देखने में सक्षम नहीं होना चाहिए आता है। क्योंकि अगर मैं पृष्ठ पर क्लिक करने के बाद लॉगआउट इसे फिर से प्रवेश पृष्ठ पर मुझे रीडायरेक्ट करेगा

मेरे कार्यक्षमता उचित है, लेकिन मेरी समस्या मैं वापस लॉगआउट के बाद ब्राउज़र का उपयोग कर userpage पर लैंड नहीं मानना ​​चाहिए। [गूगल और याहू में होता है]

एक ही व्यवस्थापक लॉगिन के साथ हो रहा है।

कृपया मुझे समस्याओं को हल करने में मदद।

उत्तर

1

आप निम्न मुझे लगता है कि

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

स्थापित करने के लिए यह वापस भी जब उपयोगकर्ता प्रेस पोस्ट करने के लिए अपने पृष्ठ का कारण होगा है बैक बटन और इसलिए आप यह जांचने में सक्षम हैं कि वह अभी भी लॉग इन है और उसे किसी अन्य स्थान पर रीडायरेक्ट करने के मामले में।

+0

मुझे कोड की रेखाओं के ऊपर कहां लिखना चाहिए? –

+0

puh ने इसे अभी आज़माया नहीं है, लेकिन मैं इसे पृष्ठ के पृष्ठ लोड में रखूंगा जहां आपको यह जांचने की आवश्यकता है कि उपयोगकर्ता लॉग इन है या नहीं। मूल रूप से वह पृष्ठ जो उपयोगकर्ता के बाद किसी अन्य पृष्ठ पर बैक बटन पर क्लिक करने के बाद प्रदर्शित होगा । – Juri

+0

यदि आप डाउनवोट करते हैं तो कम से कम एक टिप्पणी दें ... – Juri

1

आप कैश अक्षम करना होगा।

public void Page_Load() 
{ 
Response.Cache.SetCacheability(HttpCacheability.NoCache) 
... 
} 
0

आप लॉगिन/लॉगआउट कैसे करते हैं? ऐसा करने का एक उचित तरीका है उपयोगकर्ता जानकारी को लॉगिन पर सत्र में सहेजना और लॉगआउट पर प्रत्येक पृष्ठ के पेज लोड मोड परीक्षण में सत्र को साफ़ करें यदि सत्र में वैध इंफोस है या नहीं, पृष्ठ लोड को रोक नहीं है। इस तरह, जब उपयोगकर्ता लॉगआउट करता है और बैक पर क्लिक करता है तो सत्र खाली होना चाहिए और यह लोड नहीं होगा, और फिर आप लॉगिन पेज पर रीडायरेक्ट कर सकते हैं। आप कुछ कोड

3

problelm पृष्ठों तुम वापस दबा सकते हैं कैश कर लिए गए है की जरूरत है जबाब। आप अपने ब्राउज़र को हर बार सर्वर से पृष्ठों को लाने के लिए निर्देश दे सकते हैं।

आप निम्न हेडर के सभी उत्पन्न करने के लिए की आवश्यकता होगी:

Pragma: no-cache 
Cache-Control: max-age=1 
Expires: Tue, 1 May 1985 01:10:00 GMT 

समस्या सभी ब्राउज़रों सभी विकल्प का समर्थन नहीं कर रहा है तो आप सभी ब्राउज़रों सुनिश्चित करने के लिए अपने पृष्ठों को कैश नहीं है इन हेडर के सभी शामिल करने के लिए है ।

इन सभी शीर्षकों की आवश्यकता के लिए अन्य कारण यह है कि कुछ मामलों में यदि वेब ब्राउज़र समाप्त होने वाले शीर्षकों का सम्मान कर रहा है, तो भी आपके और उपयोगकर्ता के बीच एक गलत कॉन्फ़िगर किया गया प्रॉक्सी सर्वर हो सकता है जो अभी भी पृष्ठों को कैश कर रहा है।

एएसपी में आप शायद कुछ इस तरह करना चाहते हैं:

public void Page_Load() { 
    Response.ExpiresAbsolute = DateTime.Now.AddDays(-1d); 
    Response.Expires = -1500; 
    Response.CacheControl = "no-cache"; 
    Response.Cache.SetETag(randomString); 
} 
+1

पर एक नज़र डालें, मुझे यह वही समस्या होती थी। एक यादृच्छिक etag शीर्षलेख का उपयोग करने में भी मदद करता है। मैं प्रत्येक डाउनलोड के लिए पृष्ठ को एक नए संसाधन के रूप में टैग करता हूं। – user162138

+0

धन्यवाद, क्या आप मेरी मदद कर सकते हैं, मैं ऊपर वर्णित वर्ण कैसे उत्पन्न कर सकता हूं? विशेष रूप से ASP.NET –

+0

में मेरे पास मेरे एएसपीएक्स के लिए मास्टर पेज है। लॉगआउट लिंक मास्टर पेज में उपलब्ध है। क्या मास्टर और एएसपीएक्स दोनों के अंदर कोड की उपरोक्त रेखा लिखना आवश्यक है? क्या यह काम करता है अगर मैं उन्हें केवल मास्टर पेज के अंदर लिखता हूं? सही दृष्टिकोण क्या है? –

संबंधित मुद्दे