ASP.NET Web API 中的表單驗證
作者:Mike Wasson
表單驗證會使用 HTML 表單將使用者的認證傳送至伺服器。 這不是網際網路標準。 表單驗證僅適用於從 Web 應用程式呼叫的 Web API,讓使用者可以與 HTML 表單互動。
優點 | 缺點 |
---|---|
|
|
簡單來說,ASP.NET 中的表單驗證運作方式如下:
- 用戶端要求需要驗證的資源。
- 如果未驗證使用者,伺服器會傳回 HTTP 302 (Found),並重新導向至登入頁面。
- 使用者會輸入認證並提交表單。
- 伺服器會傳回另一個重新導向回原始 URI 的 HTTP 302。 此回應包含驗證 Cookie。
- 用戶端會再次要求資源。 要求包含驗證 Cookie,因此伺服器會授與要求。
如需詳細資訊,請參閱表單驗證概觀。
將表單驗證與 Web API 結合使用
若要建立使用表單驗證的應用程式,請在 MVC 4 專案精靈中選取 [網際網路應用程式] 範本。 此範本會建立 MVC 控制器以進行帳戶管理。 您也可以使用 ASP.NET Fall 2012 Update 中提供的「單一頁面應用程式」範本。
在您的 Web API 控制器中,您可以使用 [Authorize]
屬性 (如使用 [授權] 屬性所述) 來限制存取。
表單驗證會使用工作階段 Cookie 來驗證要求。 瀏覽器會自動將所有相關 Cookie 傳送至目的地網站。 此功能讓表單驗證可能容易受到跨網站偽造要求攻擊 (CSRF) 影響,請參閱防止跨網站要求偽造 (CSRF) 攻擊。
表單驗證不會將使用者的認證資訊加密。 因此,除非搭配 SSL 使用,否則表單驗證並不安全。 請參閱在 Web API 中使用 SSL。