Ich habe zwei Websites mit selbstgeschriebenen Mitgliedschaftsanbietern, die auf demselben Server in demselben Web in verschiedenen Webanwendungen und verschiedenen Anwendungspools gehostet werden.
Früher hatte ich das Problem, dass ich mich nicht auf beiden Seiten zusammen anmelden konnte. Danke an Remys post , dies funktioniert jetzt, ich musste das name
-Attribut dem Element forms
hinzufügen.
Aber jetzt habe ich das Problem, dass die Remember-Me-Option der ASP-Login-Steuerung aufgehört hat zu arbeiten. Der Benutzer wird nach dem normalen Sitzungs-Timeout abgemeldet.
Die Authentifizierungsattribute in der Datei web.config sehen folgendermaßen aus:
%Vor%Außerdem habe ich den Cookie-Namen für die Formularauthentifizierung auf verschiedene Namen gesetzt.
Gibt es noch etwas, das ich hinzufügen muss, damit die Erinnerungsfunktion funktioniert?
Aktualisieren
Ich habe festgestellt, dass das Problem verschwunden ist, wenn ich die Verschlüsselung und Validierung für den Formular-Authentifizierungs-Cookie deaktiviere. Wenn ich entweder Verschlüsselung, Validierung oder beides aktiviere, tritt das Problem neu auf.
Ich weiß auch, dass es unabhängig von den Session-Cookie-Namen ist (sie könnten sogar identisch sein). Vielleicht hilft diese Information jemandem zu verstehen, was vor sich geht?
Update 1
Danke an Jason Kealey für die Lösung dieses Problems. Ich hätte es nie gefunden.
In der Zwischenzeit habe ich die entsprechenden Informationen in msdn gefunden. Im
Vorgehensweise: Konfigurieren von MachineKey in ASP.NET 2.0
Im Abschnitt "Überlegungen zur Bereitstellung von Webfarm" wird geschrieben:
Wenn Sie Ihre Anwendung von anderen Anwendungen auf demselben Server isolieren möchten, platzieren Sie <machineKey>
in der Datei Web.config für jede Anwendung auf jedem Server in der Farm. Stellen Sie sicher, dass Sie für jede Anwendung separate Schlüsselwerte verwenden, aber die Schlüssel der einzelnen Anwendungen auf allen Servern in der Farm duplizieren.
Das Problem besteht möglicherweise darin, dass Sie über Prüfschlüssel verfügen, die bei jedem Start des Arbeitsprozesses automatisch generiert werden. Der Cookie ist verschlüsselt, aber wenn Sie zurückkommen, wird ein neuer serverseitiger Schlüssel verwendet und somit kann Ihr Cookie nicht entschlüsselt werden.
Sehen Sie sich den Abschnitt "Computerschlüssel" an Ссылка
Hier ist etwas, das den machineKey-Abschnitt für Sie generieren wird Ссылка
Das Cookie-Timeout wird ebenfalls von IIS begrenzt und ist standardmäßig auf 20 Minuten begrenzt. Um dies zu ändern:
Tags und Links asp.net forms-authentication asp.net-membership