2009-10-25 48 views
6

有時候微軟會做出如此驚人的愚蠢行爲,它會讓我的頭部受傷。幫助我發現事實並非如此......請!IE不提供保存ASP.NET表單的密碼

我遇到了一個我正在開發的ASP.NET(3.5)網站的登錄頁面出現問題,IE(7或8 ...無法忍受打開6)不提供保存用戶登錄時的密碼。我查看了其他瀏覽器,Firefox,Chrome和Safari都提供了保存密碼的功能。我還確認,在我的測試盒上保存的IE密碼在其他網站上工作正常,例如谷歌等它工作正常。

我所做的搜索已經很少了,但它確實出現了什麼似乎表明IE不會提供保存密碼,如果頁面上的表單包含兩個以上的文本控件。我的表格中也有這種情況,它也有允許用戶註冊的控件。當我刪除這些額外的控制,IE神奇地提示保存密碼,所以這似乎是真實的。

現在...如果ASP.NET允許我有多種形式,一切都會好起來的,我將能夠將這兩個函數分離爲獨立的形式,並且IE會提示保存密碼。但是,ASP.NET不允許我這樣做,因爲它只允許一個表單。我可以在那裏搞一個非ru​​nat =服務器的形式,並嘗試這樣做,但猜猜看是什麼?因爲我的頁面使用了一個MasterPage,所以我添加的任何表單標籤都會自動刪除,即使它是非runat =服務器表單。

所以,我沒有看到任何解決方法,沒有從根本上改變我試圖實現的目標。看起來我必須向我的用戶解釋,如果他們使用IE(Microsoft產品),他們將不會被提示保存其密碼,因爲我使用ASP.NET開發了我的網站(err ... Microsoft產品)。

如果是這樣,我只是不能克服這是多麼荒謬的荒謬。如果任何人都可以提供任何想法來解決這個問題,可以告訴我,我已經弄錯了所有,我自己也是一個笨蛋笨蛋,或者只是想確認這不僅僅是我認爲這是非常愚蠢的,然後請,請這樣做。

只是爲了記錄,我真的不希望(也不明白爲什麼我應該)妥協我的設計和拆分我的網頁在兩個(這將導致用戶更糟糕的體驗)。

+0

MS部分的好奇設計決定。不知道那裏有什麼動機。至於你的設計......如果你確信密碼保存對於用戶來說是一種破壞行爲,那麼爲什麼不提供讓用戶登錄呢?或者你也這樣做? – Bryan 2009-10-27 01:03:47

+0

是的,我認爲這將是我唯一的選擇,我只是希望確認這種行爲,因爲我已經找不到它了。而且,正如你所說,這是一個很好奇的問題。 這並不是說密碼保存是一個交易斷路器,只是很難向任何人解釋,可能會問爲什麼這是不可能的,以及爲什麼Microsoft平臺+微軟瀏覽器=失敗,在這種情況下。 – BinarySolo 2009-10-27 20:11:08

+0

您是否嘗試過使用原始HTML文本框提交回aspx頁面的表單? – Chris 2009-10-30 16:37:16

回答

2

@Chris這就是我最後的目的。

因此,爲了其他人的利益,我仍然在runat = server窗體中擁有我的激活控件,並在該頁面的代碼中處理這些控件。然後我有第二個標準的HTML表單,它帶有HTML輸入文本框,併發布到不同的.NET頁面。這涉及用戶登錄。我通過Request.Form獲取此頁面中的值並處理來自此處的登錄。

上升空間:

的所有作品,並得到用戶的登錄記得,因爲他們會期望。

缺點:

我失去了使用母版(因爲我需要在頁面兩種形式),所以我有效不得不復制模板的能力 - 我不喜歡這麼多。

如果用戶登錄無效或導致某種錯誤,我必須重定向到初始頁面並將其傳遞給一個標誌以使其顯示相關錯誤消息 - 我也不太喜歡這一點。

就像我說的那樣,它只是起作用,在這種情況下,這是最重要的。感謝您的輸入。

+0

爲什麼不直接在點擊登錄按鈕時從頁面中刪除其他文本框時運行的頁面添加一些JavaScript? – Michael 2012-04-29 22:04:26

+0

您可以使用母版頁,並且擁有ASPX表單標籤之外的內容。在某些佈局中工作可能會很困難,但如果您可以使用絕對或相對定位,那麼可能不會太差。您只需將內容佔位符放置在表單標籤之外的母版頁上方或下方,然後將內容控件放置在內容頁面中。您可能已經使用過的一個很好的例子是將其放置在頭部以在內容頁面中添加腳本/樣式。 – eselk 2012-12-12 18:15:41