2010-04-28 3 views
6

Nicht sicher, ob dies für VS 2010 oder das aktualisierte Framework gilt, aber ... Wir verwenden den Oracle-Mitgliedschaftsanbieter zur Authentifizierung von Benutzern. Vor dem Upgrade hat alles funktioniert, aber jetzt Membership.ValidateUser(user, password) gibt false trotz gültiger Anmeldeinformationen zurück. Es gibt keine Ausnahme, daher ist es schwierig zu bestimmen, was das Problem sein könnte. Das Website-Verwaltungstool in VS 2010 ist immer noch in der Lage, Benutzer und Rollen (mehr oder weniger) zu verwalten, sodass ich keinen Grund habe, die Konnektivität zu hinterfragen. Was könnte das Problem sein?Membership.ValidateUser gibt immer nach dem Upgrade auf VS 2010/.NET 4.0 zurück.

Antwort

7

Die Antwort (nach this post) ist hashAlgorithmType="SHA1" in der Web.config angeben:

<membership defaultProvider="OracleMembershipProvider" hashAlgorithmType="SHA1"/> 

Diese hat das Problem für bestehende Benutzer nicht gelöst, aber neu angelegte Benutzer können sich jetzt anmelden.

+0

Ich vermute, dass für neu erstellte Benutzer das Hinzufügen von 'hashAlgorithmType' ein Red Hering ist. Versuchen Sie, einen neuen Benutzer ohne ihn hinzuzufügen und zu authentifizieren. Ich vermute, dass das Problem mit dem autogenen Maschinenschlüssel zusammenhängt. Mache einige Tests. wird die Antwort aktualisieren. –

+0

Die neu erstellten Benutzer könnten auf einer anderen (Entwicklungs) Box authentifiziert werden, daher glaube ich, dass der HashAlgorithmType das Problem behoben hat. –

+0

@nw - danke für diese Antwort, da ich das gleiche Problem hatte und stundenlang mit meinem Kopf gegen die Wand schlug. Es scheint keine Dokumentation darüber zu geben, diese Änderung beim Upgrade auf .net 4.0 vornehmen zu müssen. – leora

0

Möglicherweise haben Sie eine Maschinenknotendisparität.

In web.config - der implizite Abschnitt machineKey verwendet automatisch generierte Verschlüsselungs- und Validierungsschlüssel, die erneut mit der App-ID (AutoGenerate,IsolateApps) verknüpft werden.

Testen Sie mit einer anderen Anwendungsinstanz oder auf einer anderen Maschine?

Ist der Oracle-Mitgliedschaftsanbieter 2.0 oder 4.0?

Und das ist nur ein Stich im Dunkeln, vielleicht wird dies zu einer Lösung führen.

Von .NET Framework 4 Migration Issues

Mitgliedschaft Typen

Einige Typen (zB System.Web.Security.MembershipProvider), die in ASP.NET-Mitgliedschaft verwendet werden, wurden von System.Web.dll bewegt die System.Web.ApplicationServices.dll-Assembly. Die Typen wurden verschoben, um Abhängigkeiten zwischen Architekturschichten zwischen Typen im Client und in erweiterten .NET Framework-SKUs aufzulösen.

Klassenbibliotheken, die von früheren Versionen von ASP.NET und dass die Verwendung Mitgliedschaft Typen aktualisiert wurden, die verschoben worden sein könnte fehlschlagen, wenn in einem ASP.NET-4-Projekt verwendet kompilieren. Wenn ja, System.Web.ApplicationServices.dll eine Referenz in der Klassenbibliothek Projekt hinzufügen

+0

Wir haben kein Problem kompilieren, und das Problem tritt sowohl mit Oracle Mitgliedschaftsanbieter 2.0 und 4.0. –

Verwandte Themen