行動裝置的驗證選項
更新:2007 年 11 月
本主題會討論 ASP.NET Mobile 網頁和控制項的驗證 (Authentication) 選項。內容闡述一些在行動裝置上進行驗證的複雜問題,以及討論下列這些驗證方法:
Windows 驗證
Passport 驗證
表單驗證
驗證不支援 Cookie 的裝置
Windows 驗證
搭配 ASP.NET 使用的網際網路資訊服務 (IIS),可以與用戶端交涉 Microsoft Windows 架構驗證。在不安全的應用程式中 (其中的驗證設定為「匿名」),一定不會考慮提出要求之使用者的識別。而是使用安裝 IIS 期間所設定的預設帳戶來執行要求。
使用網際網路服務管理員,您便可以選擇下列其中一種 Windows 驗證模型:基本、摘要式和整合式 Windows。您可使用 Microsoft Management Console 網際網路服務管理員的嵌入式管理單元設定這些項目。IIS 會依據瀏覽器支援的驗證方法以及應用程式啟用的驗證方法來交涉認證。
基本驗證
現今市面上的許多行動裝置都只支援基本驗證。基本驗證是最廣泛支援的認證交換機制,但只憑基本驗證本身是不安全的,因為並沒有加密。
![]() |
---|
根據預設,基本驗證會以純文字傳送使用者名稱和密碼。因此,我們建議您針對這種驗證和其他敏感資訊使用 HTTPS。 |
Passport 驗證
ASP.NET 不支援搭配行動裝置使用 Passport 驗證。
表單驗證
表單驗證是 .NET Framework 架構的一部分,其可讓您無須使用 IIS 驗證便可驗證使用者。下面介紹事件進行的一般順序。
用戶端要求頁面。
如果使用者尚未通過驗證,瀏覽器便會重新導向到登入表單。
用戶端在回傳到伺服器的表單中提供認證。
您的應用程式驗證這些認證。如果使用者通過驗證,您的應用程式便會將表單驗證票證 (Cookie) 寫入到用戶端,並重新導向到發出原始要求的頁面。
在後續要求中,驗證 Cookie 將會進行檢查。如果該 Cookie 是有效的,就會直接提供所要求的頁面。
步驟 4 會對某些不支援 Cookie 的裝置造成問題。RedirectFromLoginPage 方法會將驗證資訊寫入查詢字串。要避免每次要求時使用者都會被重新導向到登入頁,驗證資訊可以呈現在每個要求中做為查詢字串的一部分。ASP.NET 會提供用於傳送資料的方法,例如相對 URL 的查詢字串。
如需執行表單驗證方式的範例,請參閱 MobileFormsAuthentication 類別 (Class) 概觀。
![]() |
---|
根據預設,表單驗證會以純文字方式傳送使用者名稱和密碼。因此,我們建議您針對這個驗證和其他敏感資訊使用 HTTPS,並在 Web.config 檔中,設定 <forms> 項目的 requiresSSL 屬性 (Attribute)。如果裝置不直接支援 SSL,或是它會在透過閘道器時嘗試存取要求 SSL 的頁面,此時使用者就會看到錯誤訊息。 |
驗證不支援 Cookie 的裝置
瀏覽器驗證模型通常是使用 Cookie 來追蹤使用者驗證。許多行動裝置並不支援 Cookie,因此無法用這種方法驗證。
針對最大可能範圍的裝置提供基本驗證,可以增加以行動裝置為研發目標之開發人員的價值。
Cookieless 驗證要求必須可以在其他位置存取驗證票證。在表單驗證中,如果沒有出現 Cookie,ASP.NET 驗證模組會在查詢字串中檢查其是否存在。您可藉由將工作階段 ID 納入查詢字串中來實作它。這樣做需要重寫頁面上的所有連結,以便根據下列因素有條件納入驗證票證:
應用程式是設定來保存 Cookieless 資料嗎?這將依據 IPageAdapter 介面之 CookielessDataDictionary 屬性的設定來決定。
此裝置需要 Cookieless 驗證嗎?
注意事項:
您無法將個別裝置設定成可供 Cookieless 驗證之用。
在 <mobileControls> 元素中的 CookielessDataDictionaryType 屬性必須先設定,Cookieless 裝置和 SupportsCookieWithRedirect 屬性已設為 false 之裝置上的驗證才能正常運作。根據預設,Machine.config 檔中的 CookielessDataDictionaryType 屬性會設定為 CookielessData。若要覆寫單一應用程式的這個行為,您必須將 CookielessDataDictionaryType 屬性設定成空字串 ("")。
注意,目前某些裝置和瀏覽器在回應 HTTP 重新導向時,要求完整的 URL。在 Machine.config 檔或 Web.config 檔 (應用程式層級) 的 <system.web> 項目中,將 UseFullyQualifiedRedirectUrl 屬性設定為 true。如需詳細資訊,請參閱重新導向至 ASP.NET Mobile Web 網頁。
如需安全性建議的詳細資訊,請參閱設定應用程式的安全性和 ASP.NET Web 應用程式安全性。