Nie jestem pewien, czy dotyczy to VS 2010, czy wersji zaktualizowanej, ale ... używamy dostawcy członkostwa Oracle do uwierzytelniania użytkowników. Przed aktualizacją wszystko działało poprawnie, ale teraz Membership.ValidateUser(user, password)
zwraca false
pomimo ważnych poświadczeń. Nie jest zgłaszany wyjątek, więc trudno określić, jaki może być problem. Narzędzie do administrowania witryną w VS 2010 nadal jest w stanie zarządzać użytkownikami i rolami (mniej więcej), więc nie mam powodu kwestionować łączności. Jaki może być problem?Membership.ValidateUser zawsze zwraca wartość false po aktualizacji do wersji VS 2010/.NET 4.0
Odpowiedz
Odpowiedź urządzenia (zgodnie z this post) jest określenie hashAlgorithmType="SHA1"
w pliku web.config:
<membership defaultProvider="OracleMembershipProvider" hashAlgorithmType="SHA1"/>
ten nie rozwiązało problemu dla istniejących użytkowników, ale nowi użytkownicy mogą się teraz logować.
Może występować rozbieżność klucza maszynowego.
W web.config - niejawna sekcja machineKey
korzysta z automatycznie generowanych kluczy szyfrowania i sprawdzania poprawności, które są ponownie wpisane w identyfikator aplikacji (AutoGenerate,IsolateApps
).
Czy testujesz z inną aplikacją lub na innym komputerze?
Czy dostawca członkostwa Oracle 2.0 lub 4.0?
A to tylko ukłucie w ciemności, może to doprowadzi cię do rozwiązania.
Od .NET Framework 4 Migration Issues
rodzajów członkostwa
niektórych typów (na przykład System.Web.Security.MembershipProvider), które są wykorzystywane w członkostwa ASP.NET zostały przeniesione z System.Web.dll do zestaw System.Web.ApplicationServices.dll. Typy zostały przeniesione w celu rozwiązania zależności między warstwami architektonicznymi między typami w kliencie i rozszerzonymi jednostkami SKU platformy .NET Framework.
Biblioteki klas, które zostały zaktualizowane z wcześniejszych wersji ASP.NET i używają przeniesionych typów członów, mogą nie zostać skompilowane, jeśli są używane w projekcie ASP.NET 4. Jeśli tak, należy dodać odniesienie do projektu biblioteki klasy do System.Web.ApplicationServices.dll
nie mamy problemu kompilacji, a problem występuje zarówno z Oracle dostawcy członkostwa 2.0 i 4.0. –
Brzmi trochę jak problem mam ..
Dodawanie MachineKey elementu do web.config zamiast hashAlgorithmType = „SHA1” rozwiązaniu problemu .. ale ja nadal nie rozumiem, dlaczego muszę umieścić, że ... nie udało się znaleźć żadnej dokumentacji ani ..
można sprawdzić moje pytanie tutaj .. The user name or password provided is incorrect. in MVC 3 Internet Application
Zgaduję, że dla nowo utworzonych użytkowników dodanie 'hashAlgorithmType' jest czerwonym śledziem. Spróbuj dodać i uwierzytelnić nowego użytkownika bez niego. Podejrzewam, że problem jest związany z kluczem maszyny autogenowanej. Piszę kilka testów. zaktualizuje odpowiedź. –
Nowo utworzonych użytkowników można uwierzytelnić na innym (rozwojowym) polu, więc myślę, że hashAlgorithmType rozwiązał problem. –
@ nw - dzięki za odpowiedź, ponieważ miałem ten sam problem i waliłem głową w ścianę przez wiele godzin. Wydaje się, że nie ma żadnej dokumentacji na temat konieczności dokonania tej zmiany podczas aktualizacji do .net 4.0. – leora