2012-09-01 8 views
19

मेरे पास .NET MVC एप्लिकेशन काम कर रहा है, लेकिन विंडोज 8 पर IE10 के साथ पहुंचने पर ब्राउज़र स्रोत कोड दिखाता है कि सभी गतिशील रूप से जेनरेट किए गए URL, उदाहरण के लिए।IE10 .NET MVC लिंक में टोकन इंजेक्ट करता है

/(एफ (usb6gVWyFnXevozQyFvVxVdbsN0uM9kZ5wNu9gT9pWBINGuodOdzLKkIQzfhqy3UhnCLyXf78LugXZO2UPYfMbNzSJJawmbqUBL56TjKpXgWpiMdVAjB1T3YcPlGhZePwFd6C9P_f_Y89KiDnWcA9EfR1m0ud3IcBYTW8OwZxOMTd8bxt5hM8mgXVN6OSdoo3IMwRA2))/घर/सूचकांक

बजाय

:

/होम/सूचकांक

साथ के रूप में लिखा जाता है

अगर हम स्थिर HTML के साथ लिंक लिखें:

<a href="/Home/Index">[linktext]</a> 

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

किसी जानता कि क्यों इस कोड को इंजेक्ट किया जाता है (फ्रेमवर्क या IE10 मुद्दा?)

उत्तर

22

कि कोड ASP.NET's cookieless session सुविधा का हिस्सा है।

<sessionState cookieless="false" /> 

या साथ:: आप के साथ web.config <configuration><system.web> खंड में disable it कर सकते हैं

<forms cookieless="UseCookies" /> 

मैं नहीं जानता कि क्यों IE10 कि कर रही है। आप शायद आईपी 10 जानकारी के साथ app_browsers में ब्राउज़र फ़ाइल जोड़ सकते हैं ताकि यह बताने के लिए कि यह कुकीज़ का समर्थन करता है। या शायद आपके पास कुकीज़ अक्षम हैं?

+1

ऐसा लगता है कि आप अद्यतित ब्राउज़र परिभाषा फ़ाइलों के कारण IE10 को गलत तरीके से व्याख्या करने वाले सर्वर के बारे में सही हैं। इसके अतिरिक्त आपके सुझाव में मैंने जोड़ा: '

'और IE10 अब सत्र टोकन इंजेक्ट नहीं करता है। – Smorko

+0

हाँ प्रपत्र कुकीज वह था जिसे मैंने अतीत में इस्तेमाल किया था लेकिन मेरे सिर के ऊपर से नहीं सोचा था। – bkaid

8

ब्राउज़र परिभाषा फ़ाइलों में एक बग है जो .NET 2.0 और .NET 4 के साथ भेज दिया गया है, अर्थात् उनमें ब्राउज़र संस्करणों की एक निश्चित श्रृंखला के लिए परिभाषाएं हैं। लेकिन कुछ ब्राउज़रों (जैसे आईई 10) के संस्करण उन श्रेणियों के भीतर नहीं हैं। इसलिए, एएसपी.नेट उन्हें अज्ञात ब्राउज़र के रूप में देखता है और डाउन-स्तरीय परिभाषा में चूक करता है, जिसमें कुछ असुविधाएं होती हैं, जैसे कि यह जावास्क्रिप्ट और/या कुकीज़ जैसी सुविधाओं का समर्थन नहीं करती है।

माइक्रोसॉफ्ट ने इस मुद्दे को ठीक करने वाले हॉटफिक्सेस को जारी किया।

(Source)

+1

धन्यवाद अलेक्जेंडर, सर्वर पर ब्राउज़र परिभाषाओं को अद्यतन करना शायद इसे हल करने का सबसे अच्छा तरीका है यदि आप सर्वर अपडेट करने में सक्षम हैं। Web.config tweaking अभी के लिए मेरे लिए नौकरी किया था। – Smorko

+0

यदि आप Azure से ताजा विंडोज 2008 आर 2 वीएम पर स्थापित कर रहे हैं, तो आपको विंडोज अपडेट (इन फिक्सेस को प्राप्त करने के लिए) लागू करने की आवश्यकता है। आज इस टिप की तलाश में लगभग 2 घंटे खो गए। – MikeJ

1

अपना वेब जोड़ें।इस तरह की कॉन्फ़िगरेशन फ़ाइल cookieless="UseCookies" पर;

<authentication mode="Forms"> 
    <forms loginUrl="~/YourLoginUrl" timeout="2880" **cookieless="UseCookies"** /> 
</authentication> 

यह हल इस लिंक से उद्धृत किया गया है; https://stackoverflow.com/a/15510453/2057154

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