次の方法で共有


ユーザー資格情報ファイル (Users.xml)

このアプリケーション例では、FormsAuth ディレクトリに Users.xml という名前の XML ファイルが存在することが想定されています。Users.xml は、Default.aspx ファイル (これも FormsAuth ディレクトリに配置されています) へのアクセスを認定されたユーザーのユーザー名とパスワードが格納されるファイルです。Logon.aspx はこのファイルから名前情報とパスワード情報を読み取り、AddUser プロセスはこのファイルに名前情報とパスワード情報を書き込みます。

この例は、説明を目的として用意したものです。ユーザー名とパスワードをテキスト ファイルに格納するのは危険です。インターネット経由でパスワードを読み取られてしまうおそれがあります。XML ファイルまたはその他のテキスト ファイルを使用して機密情報を格納する場合は、パスワードにソルト付きハッシュを使用するか、他の対称暗号方式を使用して、攻撃に対する脆弱性を補うことを考慮します。この簡単な例では、パスワードは静的 FormsAuthentication.HashPasswordForStoringInConfigFile メソッドを使用してハッシュされています。HashPasswordForStoringInConfigFile は、ソルト付きハッシュ方式ではなく、辞書攻撃に対して潜在的な脆弱性があります。辞書攻撃では、攻撃者がソフトウェアを使用して大きな辞書に載っている単語をすべてハッシュし、生成されたハッシュ値とプレーン テキストに格納されているハッシュ値を比較することによってパスワードの推測を試みます。辞書攻撃を防ぐために、ユーザーに対し、パスワードには一般的な単語を使用せず、いくつかの数字と英数字以外の文字を含めるように要望する必要があります。

また、権限のあるアカウントだけがファイルを読むことができるように、ファイルにはアクセス制御リスト (ACL) のアクセス許可を適用します。さらに、Internet Service Manager を使用して IIS (Microsoft Internet Information Services) のファイルから読み込みのアクセス許可を削除することによって、防御機能を追加します。

ファイルへの書き込みを ASP.NET に許可するために、IIS 5 の ASPNET アカウントまたは IIS 6 の Network Service アカウント (または構成されている他のアカウント) にファイルの書き込みのアクセス許可を付与します。

Users.xml ファイルの既定の内容の例を次に示します。ハッシュされていないパスワードは、jchen@contoso.comjchenpw で、Kim@contoso.comKimpw です。

<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 の Users ファイルを使用したフォーム認証