我正在創建一個ASP.NET應用程序,我想知道ASP.NET的驗證控件在哪裏運行?在服務器上還是在客戶機上?ASP.NET中的驗證控件是在服務器端還是客戶端運行的?
我應該考慮用JavaScript來對我的項目執行簡單的表單驗證嗎?
我正在創建一個ASP.NET應用程序,我想知道ASP.NET的驗證控件在哪裏運行?在服務器上還是在客戶機上?ASP.NET中的驗證控件是在服務器端還是客戶端運行的?
我應該考慮用JavaScript來對我的項目執行簡單的表單驗證嗎?
爲什麼不這樣做呢?爲了安全起見,您絕對需要在後端代碼(C#/ ASP.NET)中進行用戶輸入驗證,同時如果他們在填寫表單時獲得實時驗證(Angular/JS)。
因爲ASP.NET 2.0將會在頁面上運行服務器端檢查,通過檢查代碼中Form_Load屬性中的.IsValid()檢查任何驗證器控件(它運行服務器端)以確保它是有效的背後。這個過程需要回發到服務器,這意味着如果他們錯過了一些簡單的事情,比如填寫姓名字段,他們必須首先提交表單,這不是高性能的,有時很昂貴。
控件上有一個名爲'EnableClientScript'的驗證器屬性,它將運行一個javascript函數來驗證簡單的事情,比如缺少字段信息或者甚至對電話號碼或電子郵件地址等事情進行註冊前檢查。
大衛也是正確的,你要驗證這個輸入無論如何。最好的策略是防禦任何無意的或惡意的攻擊,特別是如果你有一個面向公衆的網站。
有些可能同時運行,但都應運行在服務器端。你可以考慮改進用於UX的JavaScript,但是任何實際的驗證都應該在服務器端完成。絕不隱式信任來自客戶端的數據。 – David
both:http://stackoverflow.com/questions/24596891/validation-controls-for-asp-net-server-side-or-client-side – Alexan