我的客戶希望當用戶登錄時啓用「記住我」複選框。我正在加密並將用戶名和密碼存儲在cookie中。在.NET 2.0中使用「記住我」功能進行身份驗證
但是,當它處於密碼模式時,無法寫入文本框。
我已經看過很多次了,所以他們怎麼做呢?
在此先感謝!
我的客戶希望當用戶登錄時啓用「記住我」複選框。我正在加密並將用戶名和密碼存儲在cookie中。在.NET 2.0中使用「記住我」功能進行身份驗證
但是,當它處於密碼模式時,無法寫入文本框。
我已經看過很多次了,所以他們怎麼做呢?
在此先感謝!
除了將文本插入到登錄表單中,您可以完全繞過表單並在登錄頁面檢查cookie的內容嗎?爲用戶減少工作量,並使其更加無縫。
您可以在2周內設置cookie的到期時間,以保持用戶登錄。這就是ASP.NET身份驗證如何與持久身份驗證一起工作的方式。請記得更新每個請求的到期日期。
Page_Load(...)
{
... process cookie ...
if (cookie is good) Response.Redirect("content.aspx");
}
只記得在重定向之前關閉並處置任何數據庫活動。
他們不希望用戶自動登錄,他們只是希望usernamd和密碼字段預先填寫。
我知道這是愚蠢的,因爲讓你登錄同樣的事情,但是這是他們的請求。
我剛纔提到這不是最好的安全措施,但他們並不在乎。
網站如MySpace使用它,wher億郵去myspace.com和你usernamd和密碼 已經填寫。
我不記得任何網頁像你描述做類似的東西,但我認爲這是網頁瀏覽器自動填寫密碼。我知道這不是一個好的解決方案,但你可以做的可能是,如果有一個cookie來驗證用戶,可以將普通文本框的文本設置爲星號或其他類似的內容。無論如何您都不需要使用文本框中的密碼來驗證用戶身份。
如果你的服務器端代碼可以訪問他們從cookie的用戶名和密碼,然後無法將頁面只是填充表單域,像這樣的價值屬性:
<input type="text" name="username" value="<%=decryptedUsername%>" />
<input type="password" value="<%=decryptedPassword%>" />
當然,這是非常不安全的,因爲你用純文本回顯用戶密碼(這是一個很大的禁忌)。但是正如你所說的,你的客戶並不擔心安全問題。如果他們是SSL,那麼可能有助於緩解這種風險。
Thatz相當直接的,嘗試使用:
txtPass.Attributes [ 「值」] = 「123456」; (最有可能在頁面加載事件處理程序上)
其中txtPass是密碼文本框的ID(在密碼模式下)。並且你想要顯示的密碼是123456.
文本框可以改變類型嗎?如果是這樣,你可以使文本框正常和隱藏,然後將密碼放在那裏,然後將文本框類型更改爲密碼類型,然後取消隱藏它...
你的意思是說自動登錄的權利? – 2008-09-29 19:21:20
正確。甚至在出示登錄表單之前檢查cookie。 – 2008-09-29 19:23:18