2009-10-25 4 views
6

Manchmal macht Microsoft etwas so erstaunlich dumm, dass es meinen Kopf verletzt. Hilf mir herauszufinden, dass das wirklich nicht der Fall ist ... bitte!IE bietet nicht an Passwort von ASP.NET Formular speichern

Ich habe ein Problem mit der Login-Seite einer ASP.NET (3.5) Website, die ich entwickle, wobei IE (7 oder 8 ... kann nicht ertragen zu öffnen 6) bietet nicht zu speichern das Passwort, wenn sich ein Benutzer anmeldet. Ich habe andere Browser überprüft und Firefox, Chrome und Safari bieten alle an, das Passwort gut zu speichern. Ich habe auch bestätigt, dass das Speichern des IE-Passworts in meinen Testboxen auf anderen Sites funktioniert und z. Google usw. funktioniert gut.

Die Suche, die ich gemacht habe, ist sehr wenig aufgetaucht, aber was wenig es aufgetaucht scheint, schlägt vor, dass IE nicht anbietet, ein Kennwort zu speichern, wenn das Formular auf der Seite mehr als zwei Textsteuerelemente enthält. Das ist der Fall mit meiner Form, die auch Kontrollen hat, um einem Benutzer zu erlauben, sich zu registrieren. Und wenn ich diese zusätzlichen Steuerelemente entferne, fordert IE automatisch auf, das Passwort zu speichern, also scheint das wahr zu sein.

Jetzt ... wenn ASP.NET mir erlauben würde, mehrere Formen zu haben, würde alles gut sein und ich würde in der Lage sein, die zwei Funktionen in eigenständige Formen zu trennen und IE würde veranlassen, Passwörter zu speichern. Aber ASP.NET erlaubt mir das nicht, da es nur ein einziges Formular erlaubt. Ich könnte eine non runat = Server Form darin täuschen und versuchen, dies zu tun, aber raten Sie was? Da meine Seite eine MasterPage verwendet, wird jedes von mir hinzugefügte Formular-Tag automatisch entfernt, auch wenn es sich um ein nicht-runat = Server-Formular handelt.

Also, ich sehe keinen Weg um dies zu ändern, ohne grundlegend zu ändern, was ich erreichen wollte. Es sieht so aus, als müsste ich meinen Benutzern erklären, dass sie nicht aufgefordert werden, ihre Passwörter zu speichern, wenn sie IE (ein Microsoft-Produkt) verwenden, weil ich meine Site mit ASP.NET entwickelt habe (ein Fehler ... ein Microsoft-Produkt).

Wenn das so ist, kann ich einfach nicht darüber hinwegkommen, wie head-smackly lächerlich das ist. Wenn irgendjemand irgendwelche Ideen dazu geben kann, wie man es umgehen kann, kann er mir sagen, dass ich alles falsch verstanden habe und selbst ein großer, blöder Idiot bin, oder will nur bestätigen, dass es nicht nur ich ist, der denkt, dass das monumental dumm ist bitte, bitte tue es.

Nur für den Rekord, ich will wirklich (und sehe nicht, warum ich sollte) mein Design kompromittieren und meine Seiten in zwei teilen (was zu einer schlechteren Erfahrung für den Benutzer führen wird).

+0

Neugierige Designentscheidung auf Seiten von MS. Keine Ahnung, was die Motivation ist. Was Ihr Design angeht ... Warum bieten Sie nicht einfach an, den Benutzer angemeldet zu lassen, wenn Sie davon überzeugt sind, dass das Speichern von Passwörtern ein Deal-Breaker für Benutzer ist? Oder machst du das auch? – Bryan

+0

Ja, ich denke, das wird meine einzige Option sein, ich habe nur auf die Bestätigung dieses Verhaltens gehofft, da es sehr wenig gibt, was ich darin finden konnte. Und wie du sagst, ist es ein merkwürdiger. Es ist nicht so sehr, dass das Passwort-Speichern ein Deal-Breaker ist, nur schwer zu erklären, warum es nicht möglich ist und warum Microsoft-Plattform + Microsoft-Browser = Fail, in diesem speziellen Fall. – BinarySolo

+0

Haben Sie versucht, rohe HTML-Textfelder mit einem Formular zu verwenden, das an eine aspx-Seite zurückgibt? – Chris

Antwort

2

@Chris Das ist, was ich am Ende ging.

Also zum Vorteil von jemand anderem, ich habe immer noch meine Aktivierungssteuerelemente in einem Runat = Server-Formular und verarbeiten diese im Code für diese Seite. Dann habe ich ein zweites Standard-HTML-Formular mit HTML-Eingabefeldern, die auf eine andere .NET-Seite schreiben. Dies betrifft die Benutzeranmeldung. Ich nehme die Werte auf dieser Seite über Request.Form auf und kümmere mich um den Login von hier.

Pro:

alles funktioniert und Benutzer erhalten ihre Anmeldungen in Erinnerung, wie sie erwarten.

Nachteile:

verlor ich die Möglichkeit, eine Masterpage zu verwenden (wie ich in der Seite zwei Formen muß), so haben musste ich effektiv die Vorlage zu duplizieren - Ich mag das nicht viel.

Wenn die Benutzeranmeldung ungültig ist oder irgendeine Art von Fehler verursacht, muss ich auf die erste Seite umleiten und ihr ein Flag übergeben, damit sie eine relevante Fehlermeldung anzeigt - das mag ich auch nicht besonders.

Wie ich schon sagte, es funktioniert einfach und in diesem Fall war es das Wichtigste. Danke für deinen Beitrag.

+0

Warum nicht einfach etwas Javascript zu der Seite hinzufügen, die beim Klicken auf die Anmeldeschaltfläche ausgeführt wird und die anderen Textfelder von der Seite entfernt? – Michael

+0

Sie können eine MasterPage verwenden und Inhalte außerhalb des ASPX-Formular-Tags haben. Es kann schwierig sein, in bestimmten Layouts zu arbeiten, aber wenn Sie absolute oder relative Positionierung verwenden können, dann ist es vielleicht nicht so schlecht. Sie müssen nur einen Inhaltsplatzhalter auf der Masterseite platzieren, der sich außerhalb des Formular-Tags befindet, entweder oberhalb oder unterhalb, und dann das Inhaltssteuerelement dafür auf Ihrer Inhaltsseite platzieren. Ein gutes Beispiel dafür, das Sie wahrscheinlich bereits verwendet haben, ist das Platzieren eines Skripts im Kopfbereich, um auf einer Inhaltsseite ein Skript/einen Stil hinzuzufügen. – eselk

Verwandte Themen