Podsumowanie
ASP.Net nie odsyła Set-Cookie
nagłówka podczas korzystania z IE 10. Oznacza to, że na przykład nie można zalogować się do witryny ASP.Net przy użyciu IE10, na przykład podczas korzystania z uwierzytelniania za pomocą formularzy.
Szczegół
Obecnie testujemy jedną z naszych starszych aplikacji internetowych pod kątem przeglądarki IE 10 [wersja zapoznawcza 2].
Podczas próby logowania się przy użyciu uwierzytelniania za pomocą formularzy nie otrzymujemy Set-Cookie
nagłówka w odpowiedzi, jeśli agent użytkownika to IE 10. Próbowaliśmy tego z pustą witryną .Net 2 i .Net 4.
Ponieważ nie mogliśmy / nie uwierzyliśmy, uruchomiliśmy nawet ręcznie następujące żądanie HTTP telnet
- po użyciu wszystkich zwykłych narzędzi - i otrzymaliśmy tę samą odpowiedź.
GET http://test.ourdomain.co.uk/ HTTP/1.1
Accept: */*
Host: test.ourdomain.co.uk
User-Agent: Mozilla/5.0 (compatible; MSIE 10.0; Windows NT 6.1; Trident/6.0)
Content-Length: 0
Powyższe żądanie HTTP zwraca nie Set-Cookie
w odpowiedzi. Ale jeśli po prostu zmienimy User-Agent, aby Mozilla/5.0 (compatible; MSIE 9.0; Windows NT 6.1; Trident/6.0)
działał!
Czy ktoś może to powtórzyć? Nie mogę znaleźć żadnego znanego problemu z plikami cookie IE10 poza problemem wpływającym na niestandardowe wzorce adresów URL.
Poprawka
Po tym, jak devio opublikował oryginalną odpowiedź, z obejściem, nullptr potwierdziło, że istnieje teraz poprawka do tego .
http://support.microsoft.com/kb/2600088
Promowałem poprawkę do głównego pytania, ponieważ jest po prostu wygodniejsza do wykorzystania w przyszłości, ale prosimy o głosowanie nad wspomnianymi użytkownikami.
źródło
Odpowiedzi:
Znaleziono ten wpis w MS Connect , zachowanie jest rozpoznanym błędem.
Sugerowane obejście (z wpisu):
<browsers> <browser refID="Default"> <capabilities><!-- To avoid wrong detections of e.g. IE10 --> <capability name="cookies" value="true" /> <capability name="ecmascriptversion" value="3.0" /> </capabilities> </browser> </browsers>
źródło
Problem tkwi w niektórych instancjach IIS myślących, że IE10 jest przeglądarką bez plików cookie (tj. Nie może obsługiwać plików cookie). W naszym przypadku problemowym serwer ustawiał plik cookie uwierzytelniający i wysyłał go z powrotem do przeglądarki, ale następnie ignorował ten plik cookie przy kolejnych żądaniach.
Rozwiązaniem jest albo poprawienie możliwości przeglądarki, aby wiedziała, że IE10 może robić pliki cookie (opisane w innej odpowiedzi na tej stronie) lub zmiana domyślnego zachowania, aby zmusić ją do używania plików cookie, nawet jeśli uważa, że przeglądarka nie może robić plików cookie.
Właśnie dodaliśmy do naszej sekcji formularzy w web.config:
cookieless = "UseCookies"
<authentication mode="Forms"> <forms name=".AUTH" cookieless="UseCookies" loginUrl="/" timeout="10000" path="/" /> </authentication>
źródło
Dostępna jest poprawka do tego problemu [1].
1) http://support.microsoft.com/kb/26000881) http://support.microsoft.com/kb/2600217 (zastępuje poprzedni KB)
Ponadto [2] sugeruje, że pojawi się to w Windows Update w styczniu 2012 roku.
2) http://www.hanselman.com/blog/BugAndFixASPNETFailsToDetectIE10CausingDoPostBackIsUndefinedJavaScriptErrorOrMaintainFF5ScrollbarPosition.aspx
źródło
Dziękuję za pomoc. Nie udało się.
Skopiowałem plik z witryny do
C:\WINDOWS\microsoft.net\Framework\v2.0.50727\CONFIG\Browsers
Uruchom w wierszu polecenia
C:\WINDOWS\microsoft.net\Framework\v2.0.50727>aspnet_regbrowsers.exe -i
Uruchom ponownie usługi IIS.
Witryna została przetestowana i działa bezbłędnie.
Jeszcze raz dziękuję za informację zwrotną
źródło
Aktualizacja odpowiedzi nullptr.
Próbowałem dzisiaj pobrać Microsoft KB2600088. Po otrzymaniu linku e-mailem kliknąłem go, a następnie wyprowadził mnie strona, która mówi, że nie jest już dostępna.
Spróbuj tego: http://support.microsoft.com/kb/2600217
To łącze zastępuje KB2600088 i KB2628838.
MIcrosoft .Net Framework 4.5 jest już dostępny.
źródło
Zainstalowałem różne poprawki, o których wszyscy wspominali iz jakiegokolwiek powodu problem nie został rozwiązany.
Zainstalowano .NET Framework 4.5 Full i problem zniknął.
Nie musisz aktualizować żadnych projektów, aby osiągnąć cel 4.5. Po prostu zainstaluj go na serwerze.
źródło