2010-04-28 11 views
6

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

7

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ć.

+0

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ź. –

+0

Nowo utworzonych użytkowników można uwierzytelnić na innym (rozwojowym) polu, więc myślę, że hashAlgorithmType rozwiązał problem. –

+0

@ 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

0

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

+0

nie mamy problemu kompilacji, a problem występuje zarówno z Oracle dostawcy członkostwa 2.0 i 4.0. –

Powiązane problemy