共用方式為


使用者憑證檔案 (Users.xml)

這個應用程式範例將尋找位於 Formsauth 目錄中的 XML 檔案 Users.xml。Users.xml 是包含使用者名稱和密碼的檔案,已取得授權的使用者可存取 Default.aspx 檔案 (同樣位於 Formsauth 目錄)。Login.aspx 會從這個檔案讀取名稱和密碼資訊,而 AddUser 處理序則將名稱和密碼資訊寫入該檔案。

這個範例僅供說明。將使用者名稱和密碼儲存在文字檔中是十分不安全的作法,會造成密碼在 Internet 上遭到讀取。如果您使用 XML 檔或任何其他文字檔儲存機密資訊,就應考慮使用有防護能力的雜湊,作為密碼或其他適當的對稱式加密技術,使它較不容易受到攻擊。在這個簡單的範例中,密碼使用靜態的 FormsAuthentication.HashPasswordForStoringInConfigFile 方法雜湊。HashPasswordForStoringInConfigFile 並不是有防護能力的雜湊技術,且可能容易受到字典攻擊,在這類攻擊中,攻擊者使用軟體反覆雜湊大字典內的所有字,並比較產生出的雜湊與以純文字儲存的雜湊,試圖猜出密碼。您應要求使用者選擇密碼時要使用不同的字,其中應包含數字和非英數字元,以避免字典攻擊。

您也應該將存取控制清單 (ACL) 權限套用至該檔案,讓只有獲得授權的帳戶才能讀取。在使用 Internet Service Manager 的 Microsoft Internet Information Services (IIS) 中,您也可以移除檔案的讀取權限,以提供一行額外的保護。

若要允許 ASP.NET 寫入檔案,可授與 IIS 5 的 ASPNET 帳戶或 IIS 6 的 Network Service (或其他設定的) 帳戶檔案寫入權限。

下列範例說明 Users.xml 檔案的預設內容。jchen@contoso.com 的非雜湊密碼是 jchenpwKim@contoso.com 的是 Kimpw

<Users>
    <Users>
        <UserEmail>jchen@contoso.com</UserEmail>
        <UserPassword>
            BA56E5E0366D003E98EA1C7F04ABF8FCB3753889
        </UserPassword>
    </Users>
    <Users>
        <UserEmail>Kim@contoso.com</UserEmail>
        <UserPassword>
            07B7F3EE06F278DB966BE960E7CBBD103DF30CA6
        </UserPassword>
    </Users>
</Users>

請參閱

ASP.NET Web 應用程式安全性 | 使用 XML 使用者檔案的表單驗證