2012-08-31 56 views
0

執行在ASP.NET應用程序,因爲據我所知,後面的代碼位於服務器,而不是在瀏覽器中。因此,例如,我有一個登錄屏幕,在後面的代碼中,在登錄按鈕單擊時,我在發送到服務器之前加密用戶憑證。當用戶按下登錄按鈕時,在發送到服務器之前如何激發相應的事件以及如何對用戶憑證進行加密?ASP.NET - 如何服務器端代碼在用戶請求時從瀏覽器

任何人都可以請解釋我的流程是怎麼樣的嗎?

+0

[ASP.NET應用程序和頁面生命週期](http://www.codeproject.com/Articles/73728/ASP-NET-Application-and-Page-Life-Cycle) – Habib

回答

1

如果要加密代碼中的證書喲你在服務器本身上加密它們,它們沒有在客戶機上加密。無論您在瀏覽器中的表單域中輸入了什麼內容,都會作爲POST的主體從客戶機瀏覽器傳輸到服務器。

如果您使用的是HTTP協議,則您輸入的數據在連線上清晰可見(您可以使用FiddlerWireshark來查看此信息)。

你要使用HTTPS將加密HTTP數據包,這樣,當數據被傳輸到服務器的內容不能被視爲明文。無論是否希望在服務器上明確加密數據之前,例如在存儲到數據庫之前,都是一個單獨的操作和問題。

document from 4GuysFromRolla固然過時,但命中你的要求是如何處理的高點。

0

你需要https要做到這一點,該瀏覽器將其發送到服務器

+0

即使我正在加密形式後面的代碼,我們需要https? – mlg

0

由於所有寫在後臺代碼在服務器上exceuted之前對其進行加密,密碼encription也在那裏進行。如果您在將密碼發送到服務器之前需要加密,則JavaScript是唯一的方法。您可以使用JavaScript AES,DES,3DES加密算法。這裏是一個很好的例子http://point-at-infinity.org/jsaes/

或者您可以使用SSL將數據發送到服務器。

如果您在頁面生命週期事件intereseted,在這裏,他們是:

1)PreInit

2)初始

3)InitCOmplete

4)LoadViewState

5)的LoadPostData

6)預載

7)負載

8)LoadComplete

9)的PreRender

10)PreRenderComplete

11)SaveStateComplete

12)卸載

0

請注意,您已經爲按鈕,點擊編寫的任何代碼,它是在服務器上。所以只有當服務器上的代碼接收到文本時纔會發生加密,而不是在此之前。我不會建議使用JavaScript加密這些文本,但應該考慮引入SSL。在SSL中運行應用程序會稍微慢一些,因爲它必須加密/解密進程。因此,您可能計劃在HTTPS(SSL)和其他普通HTTP下的頁面上運行受保護的頁面。希望它有效。

相關問題