2010-10-22 4 views
5

मैं एक विंडोज फोन 7 ऐप बना रहा हूं जिसमें लॉगिन/लॉगआउट सेमेन्टिक्स (वेब ​​ऐप को प्रमाणीकरण) है। जब उपयोगकर्ता लॉग आउट करता है तो मैं लॉगिन स्क्रीन पर वापस नेविगेट करता हूं और सत्र प्रमाणीकरण भूल जाता हूं।मैं सिल्वरलाइट/विंडोज फोन 7 में नेविगेशन इतिहास को कैसे साफ़ करूं?

ऐसा करने पर मैं नेविगेशन इतिहास को साफ़ करना भी चाहूंगा ताकि वह उस पृष्ठ पर वापस न जा सके जो उन्हें पहले ही प्रमाणित होने की अपेक्षा करता है।

NavigationService के साथ इसे कैसे करना है और यह सोचने का कोई तरीका नहीं है कि यह करने का कोई तरीका नहीं है।

उत्तर

6

यहां देखने के लिए कुछ चीज़ें हैं। सबसे पहले मैं यहां दिए गए मार्गदर्शन से परिचित होने की सलाह देता हूं।

Introducing the concept of “Places” - Peter Torr's Blog

Redirecting an initial navigation - Peter Torr's Blog

(पल खेद पर नीचे) आप इस मार्गदर्शन सबसे अच्छा मार्ग है कि भीतर काम करने में सक्षम रहे हैं। लॉगिन स्क्रीन से निपटने के लिए विशिष्ट सलाह है।

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

यहां Richard Woo, Maarten Struys, Sam Jarawan से तीन दृष्टिकोण हैं।

+0

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

+0

वास्तव में दो पद थे, मैंने ऊपर संपादित किया - प्रस्तुत क्रम में पढ़ा। उनके ब्लॉग का बैक अप बीटीडब्ल्यू। –

+1

ऐसा लगता है कि इस सलाह ने हाल ही में प्रलेखन में भी इसका तरीका बना दिया है। http://msdn.microsoft.com/en-us/library/gg278407%28v=VS.92%29.aspx –

0

मुझे डर है कि आप पृष्ठों के ढेर को साफ़ नहीं कर सकते हैं और और भी, आपका ऐप प्रमाणीकरण पास नहीं करेगा। More info

3

इस कोड को अच्छी तरह से काम करता है (यह अपने पृष्ठ में होने की जरूरत है), यह पिछले प्रमाणीकरण अभी तक प्राप्त करने की कोशिश नहीं की है, लेकिन कोड काम करता है:

while (true) 
{ 
    if (this.RemoveBackEntry() == null) 
    { 
     break; 
    } 
    } 

यह प्रतीत होता है documentation साथ अलग करने के लिए, जो कहता है कि कोई और आइटम नहीं होने पर अपवाद उठाया जाएगा, इसलिए इसके लिए उपयोगकर्ता की आवाज पर logged a bug है, इसलिए यह भविष्य में बदल सकता है।

0

सिर्फ backstack स्पष्ट करने के लिए एक आसान तरीका यह है कि अगर आप onLoaded घटना में ऐसा यह सक्रिय कर देगा हर पृष्ठ पर भेज और फिर से वापस क्लिक कर रहा है जाएगा करने के लिए निम्नलिखित

while (NavigationService.CanGoBack) 
{ 
    NavigationService.RemoveBackEntry(); 
} 

ध्यान रखें है ऐप बंद करो!

महत्वपूर्ण नोट, कि यदि आप वेबcontrol या NAX विज्ञापन प्रणाली का उपयोग करते हैं, तो बैककी पृष्ठ के साथ-साथ वेब नियंत्रण से भी खाया जाता है, इसलिए पृष्ठ पर वापस आने के बजाय ऐप मौजूद होगा।

** अद्यतन इसके अलावा सिर्फ एक भी कम हाथ संस्करण एमएस देव केंद्र

while (NavigationService.RemoveBackEntry() != null); 

एक साधारण लाइन से मिल गया।नाइस

0

आप अपने पृष्ठ

private void LayoutRoot_Loaded(object sender, RoutedEventArgs e) 
    { 
     try { while (NavigationService.RemoveBackEntry() != null) ; } 
     catch (System.NullReferenceException ex) { } 
    } 
संबंधित मुद्दे