2013-11-22 3 views
7

पृष्ठ में आईफ्रेम और सत्र सफारी के मामले में शून्य है। मेरा सफारी संस्करण 5.1.7एएसपीनेट एमवीसी में आईफ्रेम में सत्र शून्य, केवल सफारी ब्राउज़र में

मैं एमवीसी 4.5 का उपयोग कर रहा हूं सब कुछ अन्य ब्राउज़रों में पूरी तरह से काम करता है। मैं नीचे दिए गए कोड का उपयोग कर रहा .. अनुरोध ट्रेसिंग

protected override void OnResultExecuting(ResultExecutingContext filterContext) 
{ 
    base.OnResultExecuting(filterContext); 
    filterContext.HttpContext.Response.AddHeader("p3p", "CP=\"CAO PSA OUR\""); 
    GetFirstError(); 
} 

उत्तर

0

उपयोग और आने वाली अनुरोध कुकी को देखने या ग्राहक (या ब्राउज़र डिबग उपकरण) पर मूल्यों को देखने के लिए एक डिबगिंग प्रॉक्सी का उपयोग करें। क्या कुकीज़ बंद हो गई हैं? क्या आपका सत्र ग्रिड सर्वर से क्लाइंट में आने पर हर बार बदल रहा है - इस मामले में सत्र स्थापित नहीं है

+0

मैं downvote नहीं था - लेकिन मैं एक है जो किया था के साथ सहमत - कैसे आपका जवाब मदद (या यहां तक ​​कि उत्तर) करता है प्रश्न? वह पहले से ही जानता है कि कुकीज़ काम नहीं कर रही हैं .. – avs099

+2

@ avs099 मुद्दा यह है कि सत्र शून्य है। जांच करने वाली पहली डायग्नोस्टिक चीजों में से एक यह है कि यदि सत्र आईडी रखा जा रहा है। सत्र अभी भी कोड मुद्दे से शून्य हो सकता है। ओपी में वास्तव में कुकीज का उल्लेख नहीं किया गया था। चूंकि डिफ़ॉल्ट सत्र प्रदाता आईडी को पुन: उत्पन्न करेगा, इससे आपको यह पता चल जाता है कि क्या मूल्य समाशोधन, रखा जा रहा है, आदि। यह देखने के लिए एक छोटी सी बात है। मैंने सत्र प्रदाता कोड पहले लिखा है, इसलिए उस पर कुछ ज्ञान का उपयोग करके अधिक नैदानिक ​​जानकारी प्राप्त करने का प्रयास करें। यह यह निर्धारित करने में सहायता करता है कि कुकी क्लाइंट या सर्वर पर वापस आ रही है, आवश्यक पहले ट्रेसिंग चरण। –

7

सफारी डिफ़ॉल्ट रूप से तृतीय पक्ष कुकीज़ स्वीकार नहीं करता है। इसका अर्थ यह है कि जब आप डोमेन ए पर जा रहे हैं और यह डोमेन बी को आईफ्रेम में एम्बेड करता है, तो यह बी से कुकीज़ स्वीकार नहीं करेगा जब तक कि उपयोगकर्ता आईफ्रेम की सामग्री से इंटरैक्ट नहीं करता।

यह परिदृश्य मुझे एक फेसबुक एप्लिकेशन विकसित करने के दौरान बुरी तरह परेशान करता है, जिसके लिए सत्र और क्लाइंट ने तीसरे पक्ष की कुकीज़ को सक्षम करने के लिए उपयोगकर्ता को बताने का समाधान स्वीकार नहीं किया। इस तरीके को लागू किया है कि मैं है और तब से काम कर रहा है:

  • जांच करता है, तो उपयोगकर्ता-एजेंट हैडर स्ट्रिंग सफारी शामिल
  • जांच करता है, तो हम सभी
  • में कोई कुकीज़ मिल ऊपर के दोनों है अगर सच है, इस मुद्दे को एक जावास्क्रिप्ट, मेरे डोमेन पर रीडायरेक्ट एक विशेष cookiefix पृष्ठ पर (outut निम्नलिखित अर्थ: <script>top.location = "http://example.com/cookiefix";</script>) - जे एस आइफ्रेम
  • उस पृष्ठ पर से बाहर खराब करने की जरूरत है करते कुछ नहीं बल्कि एक डमी सत्र चर सेट
  • मूल पृष्ठ पर रीडायरेक्ट करें और मेरे सत्र कुक का आनंद लें यानी, जो तकनीकी रूप से एक तृतीय पक्ष कुकी है लेकिन इसे पहले ही स्वीकार कर लिया गया था और
+0

यह वास्तव में फेसबुक ऐप्स के साथ बहुत अच्छी तरह से काम करता है। अनुमतियों का अनुरोध करने के बाद आपके पास पहले से ही आपके ऐप पर पुनर्निर्देशन है। आपको बस वहां एक सत्र स्थापित करने की आवश्यकता है (ताकि कुकी सेट हो), और सबकुछ बस काम करेगा (टीएम)। मेरे उपयोग के लिए – apfelbox

+0

@apfelbox मुझे ऐप ऑथ से पहले सत्र की आवश्यकता थी, इसलिए मुझे अपने कामकाज की आवश्यकता थी। – Maerlyn

-1

एक तरीका है कुकीज को इसे कभी भी अवरुद्ध करने के लिए अनुमति नहीं देना है। निम्नलिखित तरीके से

प्राथमिकताओं पर जाएं।
का चयन करें गोपनीयता
कभी कुकी अवरुद्ध

9

हम बिल्कुल एक ही मुद्दा था - अमेरिकन प्लान एप्लिकेशन ASP.Net MVC परियोजना में सफारी में काम नहीं किया। यहां हमने इसे ठीक करने के लिए किया है:

  1. सभी रिपोजन्स में P3P शीर्षलेख जोड़ें। आप इसे आईआईएस सर्वर के स्तर पर कॉन्फ़िगर कर सकते हैं: http://support.microsoft.com/kb/324013 - या Global.asax में सीधे कार्य करें:

    protected void Application_BeginRequest(Object sender, EventArgs e) 
    { 
         HttpContext.Current.Response.AddHeader("P3P", "CP=\"NOI CURa ADMa DEVa TAIa OUR BUS IND UNI COM NAV INT\""); 
    } 
    
  2. अपनी वेबसाइट के रूट में w3c फ़ोल्डर बनाएँ (प्रसिद्ध स्थान तथाकथित) और p3p.xml को अपलोड करने और इस Microsoft गाइड के अनुसार इसे में policy.p3p फ़ाइलें:

    <META> 
        <POLICY-REFERENCES> 
        <POLICY-REF about="/w3c/policy.p3p"> 
         <INCLUDE>/</INCLUDE> 
         <COOKIE-INCLUDE/> 
        </POLICY-REF> 
        </POLICY-REFERENCES> 
    </META> 
    
    : How to Deploy P3P Privacy Policies on Your Web Site

यहाँ

मेरी p3p.xml फ़ाइल है

और नीति।पी 3 पी (खेद यह लंबे समय है, लेकिन मुझे यकीन है कि कैसे एक स्पॉइलर के रूप में इसे छिपाने के लिए नहीं कर रहा हूँ):

<?xml version="1.0"?> 
<POLICIES xmlns="http://www.w3.org/2002/01/P3Pv1"> 
    <!-- Generated by IBM P3P Policy Editor version Beta 1.12 built 2/27/04 1:19 PM --> 

    <!-- Expiry information for this policy --> 
    <EXPIRY max-age="86400"/> 

<POLICY 
    xml:lang="uk"> 
    <!-- Description of the entity making this policy statement. --> 
    <ENTITY> 
    <DATA-GROUP> 
    </DATA-GROUP> 
    </ENTITY> 

    <!-- Disclosure --> 
    <ACCESS><nonident/></ACCESS> 

    <!-- No dispute information --> 

    <!-- Statement for group "Basic information" --> 
    <STATEMENT> 
     <EXTENSION optional="yes"> 
      <GROUP-INFO xmlns="http://www.software.ibm.com/P3P/editor/extension-1.0.html" name="Basic information"/> 
     </EXTENSION> 

    <!-- Consequence --> 
    <CONSEQUENCE> 
Data collected from all Web users: access logs, and search strings (if entered).</CONSEQUENCE> 

    <!-- Use (purpose) --> 
    <PURPOSE><admin/><current/><develop/></PURPOSE> 

    <!-- Recipients --> 
    <RECIPIENT><ours/></RECIPIENT> 

    <!-- Retention --> 
    <RETENTION><indefinitely/></RETENTION> 

    <!-- Base dataschema elements. --> 
    <DATA-GROUP> 
    <DATA ref="#dynamic.clickstream"/> 
    <DATA ref="#dynamic.http"/> 
    <DATA ref="#dynamic.searchtext"/> 
    </DATA-GROUP> 
</STATEMENT> 

    <!-- Statement for group "Cookies" --> 
    <STATEMENT> 
     <EXTENSION optional="yes"> 
      <GROUP-INFO xmlns="http://www.software.ibm.com/P3P/editor/extension-1.0.html" name="Cookies"/> 
     </EXTENSION> 

    <!-- Consequence --> 
    <CONSEQUENCE> 
Cookies are used to track visitors to our site, 
so we can better understand what portions of our site best serve you.</CONSEQUENCE> 

    <!-- Use (purpose) --> 
    <PURPOSE><develop/><tailoring/></PURPOSE> 

    <!-- Recipients --> 
    <RECIPIENT><ours/></RECIPIENT> 

    <!-- Retention --> 
    <RETENTION><business-practices/></RETENTION> 

    <!-- Base dataschema elements. --> 
    <DATA-GROUP> 
    <DATA ref="#dynamic.cookies" optional="yes"><CATEGORIES><uniqueid/></CATEGORIES></DATA> 
    </DATA-GROUP> 
</STATEMENT> 

<!-- End of policy --> 
</POLICY> 
</POLICIES> 
+0

कोई भी जानता है कि यह अभी भी काम करता है? या ऐप्पल ने भी इसे पैच किया है? – Jag

+0

इसे हमारे फेसबुक ऐप्स में से एक में जोड़ा गया और यह काम नहीं कर रहा है (सफारी के साथ)। :( – Jag

+0

@Jag क्या आपको कभी ऐसा समाधान मिला है जो आपके लिए काम करता है? मैंने यहां वर्णित समाधान का भी प्रयास किया है और अभी भी मेरे फेसबुक ऐप में सफारी में समस्याएं देख रहा हूं। आपके द्वारा प्राप्त किए गए किसी भी उत्तर की सराहना की जाएगी। – Don

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