在ASP.Net來說,Password預設的情況下,在postback之後,會自我毀滅...
也就是清除文字方塊裡頭的資料(使用Ajax的情況另論)
但是咧...有時候PG很喜歡搞些有的沒有的創意....例如...按個按鈕,顯示個什麼日曆(這裡不討論ajax toolkit或jQuery,或者UpdatePanel之類的...用JS當靠山的技術)
問題是...最好所有的control都不要有事件...一旦postback...事情來啦...
在ASP.Net來說,Password預設的情況下,在postback之後,會自我毀滅...
也就是清除文字方塊裡頭的資料(使用Ajax的情況另論)
但是咧...有時候PG很喜歡搞些有的沒有的創意....例如...按個按鈕,顯示個什麼日曆(這裡不討論ajax toolkit或jQuery,或者UpdatePanel之類的...用JS當靠山的技術)
問題是...最好所有的control都不要有事件...一旦postback...事情來啦...
依照TextBox Mode=Password的設計模式...
密碼會被清除(我想...大概是基於什麼莫名的安全性理由之類的...)
這時...使用者就很困擾啦!尤其是當使用者在輸入『註冊』資料,偏偏裡頭又包含了一堆會postback的事件、驗證什麼來著....
怎麼辦?
這麼做吧...把密碼還給user....以下的程式碼,以C#呈現
protected void Page_Load(object sender, EventArgs e)
{
if(IsPostBack)
{
TextBox _textbox = this.密碼物件;
_textbox.Attributes.Add("value",_textbox.Text);
}
}
不懂純推
喂!喂!喂!...
PHP沒這問題嗎?
我記得...HTML password都有這個問題...
wiselou提到:
Password預設的情況下
預設時先經過加密 有更改在解密存入資料庫
這樣可以嗎??
重點不是這個...
會錯意了
這樣資料不會在網頁庫存裡保留資料?
很多網頁都會這樣,只要輸入錯誤postback資料就會要求重打
為了安全,主要還是怕使用者亂搞
所以...在postback裡頭...就要自己去做功課了吧...
嗯
直接將USER洗腦不就成了
要不,一直PostBack,就要一直處理很多的狀況
煩死了,直接洗腦比較快啦..
把老闆洗腦...把那些意見一堆的同事給換掉....
把老闆洗腦...
老闆換我做,換老闆去工作...
現在看到大部份的網站,都把密碼分離到另一個頁面去做。醬就不用煩惱目前頁面一直在重刷了。
或者把密碼欄擺為最後一個 control 也行吧?
擺在最後一個control??
這樣....沒試過...
有空試試...
(先向版主說聲抱歉...我的接收大約只有40%...訊號不太好....以下有誤或偏離主題的話..請多包涵)
依聖殿祭司asp.net3.5所著作的書上有提到一個非常不錯的建議
wiselou您所提出的註冊頁面...
在Client端可以運用javascript作Client端驗證,
然後資料到Server端在做Server端驗證
雙驗證...
Client端驗證....降低使用者輸入錯誤,減少PostBack造成Server連線次數
Server端驗證....可以防Client端以非制定化輸入攻擊Server的攻擊手法(簡稱:黑箱測試...嗯...黑箱攻擊好了...)
另外,建議使用者自己輸入的password不要postback給使用者,降低session hijacking的攻擊可能
還有有看到密碼由使用者輸入後,用程式進行加密後存入資料庫
杜防有心人士直接開啟資料庫看到明碼密碼
提供一個方案屬單向加密(如:MD5或HASH)
1.註冊時
user key passwd to encode get keybyencode save to db
2.登入時
user key passwd to encode get keybyencode
then select keybyencode from db
比較keybyencode是否一致
以上~純分享~不足之處請見諒
我的前提就說了...不考慮那些個js的驗證....
要考慮這個,何須如此費工?
看過一些系統
連server control都省了
直接泛型處理常式+HTML+JS就做完了
連server control都沒用到
funforever提到:
提供一個方案屬單向加密(如:MD5或HASH)
1.註冊時
user key passwd to encode get keybyencode save to db
2.登入時
user key passwd to encode get keybyencodethen sel...(恕刪)
這個討論串...基本上根本就不是在討論密碼如何又如何加密、處理
它很簡單...就是post back之後,如何保存原有密碼欄位的資料...
如果您post back之後,就已經做完驗證、存檔...請您...還是忘了這一篇吧
這一篇的重點,在於,不用『額外』的js協助,單純使用asp.net,在啟用某些server control的autopostback之後,仍能維持原有password欄位資料,而不需要重新輸入的方法而已
例如...id欄位,做autopostback...