次の方法で共有


チュートリアル : セキュリティ ロールに基づくサイトマップ ノードのフィルタ処理

更新 : 2007 年 11 月

Web サイトに関する共通の条件は、特定のページへのアクセスを制限することです。ASP.NET のロール管理と ASP.NET の URL 承認を組み合わせて使用すると、セキュリティ ロールに基づいて Web ファイルへのアクセスを制限できます。サイト マップのセキュリティ トリミングという機能を使用して、ロールに基づいてこれらの制限付きファイルへのナビゲート リンクを非表示にすると、アクセス制限をさらに強化できます。

ロールは、ユーザー グループの名前です。ロールを確立すると、個別のユーザー アカウントをロールに割り当てることができます。サイト マップではロールに基づいて Web のファイルとノードへのアクセスを制限できます。

このチュートリアルでは、次の作業を行う方法について説明します。

  • メンバシップとユーザー ログインを使用する Web サイトを作成する。

  • Web サイト用ロールを確立し、これらのロールにユーザー アカウントを割り当てる。

  • ページへのアクセスを選択的に許可または拒否する URL 承認ルールを作成する。

  • サイト マップを作成し、セキュリティ トリミングを有効にする。

  • Web ページにナビゲーション メニューを作成する。

前提条件

このチュートリアルを実行するための要件は次のとおりです。

  • Microsoft Visual Web Developer。

  • .NET Framework。

  • コンピュータにローカルにインストールされたインターネット インフォメーション サービス (IIS: Internet Information Service)。

  • このチュートリアルでは、個別のユーザー アカウントを識別する方法も必要です。実行用アプリケーションでは、ユーザーをさまざまな方法で識別できます。たとえば、ユーザーの Windows ユーザー アカウントを使用します。ただし、このチュートリアルでは、サイトへのユーザーのログインによってユーザーを識別します。そのため、ASP.NET メンバシップとフォーム認証を使用するようにサイトを設定する必要があります。メンバシップを使用して既に ASP.NET Web サイトを設定している場合は、このチュートリアルの開始点としてそのサイトを使用できます。

メンバシップとユーザー ログインを使用する Web サイトを作成する

ASP.NET のメンバシップとロールを使用して作業する前に、使用可能な Web サイトを用意し、メンバシップを有効にしてロールを設定するようにその Web サイトを構成する必要があります。「チュートリアル : メンバシップとユーザー ログインを使用する Web サイトの作成」トピックの作業を実行済みの場合は、そのチュートリアルで設定した Web サイトを使用できます。

Web サイトの作成

チュートリアル : Visual Web Developer での基本的な Web ページの作成 などを実行して Visual Web Developer で Web サイトを作成済みの場合は、その Web サイトを使用し、次のセクションに進むことができます。それ以外の場合は、次の手順に従って、新しい Web サイトおよびページを作成します。

ローカル IIS Web サイトを作成するには

  1. Visual Web Developer を開きます。

  2. [ファイル] メニューの [新しい Web サイト] をクリックします。

    [新しい Web サイト] ダイアログ ボックスが表示されます。

  3. [Visual Studio にインストールされたテンプレート][ASP.NET Web サイト] をクリックします。

  4. [言語] ボックスで、作業に使用する言語をクリックします。

  5. [場所] ボックスの [HTTP] をクリックします。

    または、使用可能な IIS サーバーがない場合は、[ファイル システム] をクリックすることもできます。ただし、[HTTP] をクリックすると、実際の配置シナリオに近くなり、ページをブラウザで表示してテストできます。

  6. [参照] をクリックします。

    [場所の選択] ダイアログ ボックスが表示されます。前の手順で [HTTP] を選択した場合は、[ローカル IIS] ボタンをクリックする必要があります。それ以外の場合は、[ローカル IIS] をクリックします。

  7. [既定の Web サイト] ノードをクリックします。

  8. [新しい Web アプリケーションの作成] アイコン (右上隅) をクリックし、新しい Web サイトに「SiteNavigation」という名前を付けます。

  9. [開く] をクリックし、[OK] をクリックします。

    Visual Web Developer によって Web サイトが作成され、Default.aspx という名前の新しいページが開かれます。既定では、Visual Web Developer によって分離コード ファイル (この場合は Default.aspx.cs) を含む新しいページが作成されます。新しい項目の追加 ウィザードを使用して、他の新しいページを作成する場合は、この既定の動作を変更できます。

    ms178429.alert_note(ja-jp,VS.90).gifメモ :

    .NET Framework の以前のバージョンが Visual Web Developer よりも先にインストールされている場合は、Web サイトの設定を変更して最新バージョンの .NET Framework を使用するように、エラーが表示されることがあります。このエラーを修正するには、表示されるダイアログ ボックスの [はい] をクリックしてサーバーで ASP.NET Version 2.0 を有効化するか、または IIS Manager を使用します。IIS Manager では、アプリケーションを右クリックし、[プロパティ] をクリックして、[ASP.NET] タブをクリックします。[ASP.NET バージョン] の隣で、Visual Web Developer と共にインストールした .NET Framework のバージョンを選択します。

メンバシップの有効化とユーザーの作成

メンバシップを有効にしていない場合は、次の手順を使用して有効にします。それ以外の場合は、次のセクションに進みます。

メンバシップを有効にするには

  1. Visual Web Developer で、[Web サイト] メニューの [ASP.NET の構成] をクリックします。

    Web サイト管理ツールが表示されます。

  2. [セキュリティ] タブをクリックし、[ユーザー] の下の [認証の種類の選択][インターネットから] をクリックして [終了] をクリックします。

    このオプションでは、アプリケーションでフォームによる認証を使用するように指定します。この場合、ユーザーは、このチュートリアルで後ほど作成するログイン ページを使用してアプリケーションにログインします。

  3. [セキュリティ] タブの [ユーザーの作成] をクリックします。

    ここでは、1 つのアプリケーションに対して 2 つのユーザー アカウントを作成します。

  4. [ユーザーの作成] ボックスにアプリケーションのユーザーを定義する情報を入力します。ガイドラインとして次の値を使用します。どの値でも自由に使用できますが、このチュートリアルで後ほどこの値を使用するので指定した値を記録しておいてください。

    • **User Name   ** : Customer01 という名前を使用します。この名前は、最初のユーザー アカウントの名前になります。

    • **Password   ** : 任意のパスワードを使用します。できれば、大文字と小文字の英字と区切り記号を含む 8 文字以上の厳密なパスワードを使用してください。

    • **E-mail   ** : 正しく書式設定した電子メール アドレスを使用します。このチュートリアルでは、電子メール送信を行わないので、存在しない電子メール アドレスを使用することもできます。

    • **Security Question and Security Answer   ** : パスワードを回復する必要がある場合に、後で使用できる質問と回答を入力します。

  5. [アクティブ ユーザー] チェック ボックスをオンにし、[ユーザーの作成] をクリックします。

  6. 確認用ページの [続行] をクリックします。

  7. 前の 3 つの手順を繰り返して、Employee01 という名前のユーザー アカウントをもう 1 つ作成します (これらのユーザー アカウントに対するロールを作成する場合は、小文字の英字だけで構成される名前を使用します)。

  8. ページ右下隅の [戻る] ボタンをクリックして [セキュリティ] スタート ページに戻ります。

ユーザー ログイン ページの作成

このチュートリアルで設定するメンバシップとロールの設定をテストするには、ユーザーをログインさせてそれらのユーザーを識別する方法を作成する必要があります。

すべてのユーザーについてログイン ステータスを表示する既定のページを作成するには

  1. Default.aspx ページを開き、デザイン ビューに切り替えます。

    Default.aspx ページがない場合は、使用する Web サイトのルートにこのページを追加します。

    ms178429.alert_note(ja-jp,VS.90).gifメモ :

    ページの名前を必ず Default.aspx にしてください。この名前は、このチュートリアルで使用します。

  2. ツールボックスの [ログイン] グループから [LoginStatus] コントロールをページにドラッグします。

    ログインしていないユーザーが LoginStatus コントロールをクリックすると、このユーザーは Login.aspx ページに自動的に移動します。

  3. LoginStatus コントロールの右側にカーソルを置き、Enter キーを押して、スペースも含めて「Hello」と入力します。

  4. ツールボックスの [ログイン] グループから [LoginName] コントロールをページにドラッグします。

    ユーザーがログイン済みの場合、LoginName コントロールはそのユーザーの名前を表示します。

  5. ページを保存して閉じます。

これで、すべてのユーザーがアクセスできるホーム ページが作成されました。次の手順では、簡単なログイン ページを作成します。

ログイン ページを作成するには

  1. Login.aspx という名前のページを Web サイトのルートに追加します。

  2. Login.aspx ページを開き、デザイン ビューに切り替えます。

  3. ツールボックスの [ログイン] グループから [ログイン] コントロールをページにドラッグします。

  4. [ログイン] コントロールを右クリックし、[プロパティ] をクリックして、DestinationPageUrlDefault.aspx に設定します。

  5. ページを保存して閉じます。

Web サイト用ロールを確立し、これらのロールにユーザー アカウントを割り当てる

セキュリティ トリミングを使用して作業する前に、ユーザー ロールを設定する必要があります。

ロールの有効化

セキュリティ トリミングを機能させるには、ロールを有効にする必要があります。

ロールを有効にするには

  1. Visual Web Developer で、[Web サイト] メニューの [ASP.NET の構成] をクリックします。

    Web サイト管理ツールが表示されます。

  2. [セキュリティ] タブをクリックして、[ロールの有効化] をクリックします。

ロールの作成、および作成したロールへのユーザー アカウントの割り当て

ここまででロールを有効にしましたが、ロールを作成してこれらのロールにユーザー アカウントを作成しないと、アクセス ルールを作成できません。

ロールを作成してユーザー アカウントを割り当てるには

  1. Web サイト管理ツールが開いていない場合は、次の手順で開きます。Visual Web Developer で [Web サイト] メニューの [ASP.NET の構成] をクリックします。

    Web サイト管理ツールが表示されます。

  2. [セキュリティ] タブをクリックして、[ロールの作成または管理] をクリックします。

    ここでは 2 つのロールを作成します。

  3. [新しいロールの作成] ボックスに「customers」と入力し、[ロールの追加] をクリックします。

  4. 前の手順を繰り返して、employees という名前のロールを作成します。

  5. [ロール名] ボックスで customers の隣にある [管理] をクリックします。

    この操作により、リストからユーザー アカウントを選択して customers ロールに追加できるページに移動できます。

  6. [ユーザーの検索] ボックスの [すべて] をクリックします。

    この操作により、使用する Web サイトのすべてのユーザー アカウントが表示されます。リストが長すぎる場合は、ユーザー名の最初の文字を使用して検索することもできます。

  7. ユーザー名 Customer01 の隣にある [ロールに所属] 列のボックスをクリックします。

    この操作により、ユーザー Customer01 が customers ロールのメンバになりました。

  8. [戻る] をクリックして [新しいロールの作成] ページに戻ります。

  9. 前の 2 つの手順を繰り返してユーザー Employee01 を employees ロールに追加します。

  10. ASP.NET アプリケーション管理ページを閉じます。

ページへのアクセスを選択的に許可または拒否するルールを作成する

セキュリティ トリミングをテストするには、使用する Web サイトのフォルダとページを作成し、これらのフォルダとページにセキュリティ アクセス許可を設定する必要があります。

このチュートリアルで必要なフォルダとページの作成

使用する Web サイトには、複数のページにリンクするサイト マップ構造を設定します。ここでは、この構造を作成します。

必要なフォルダとページを作成するには

  1. ソリューション エクスフローラで Web サイトのルートを右クリックし、[新しいフォルダ] をクリックして、そのフォルダに「EmployeesOnly」という名前を付けます。

    EmployeesOnly フォルダには、一部のユーザーだけがアクセスできるページを格納します。

  2. Web サイトのルートを右クリックし、[新しいフォルダ] をクリックして、そのフォルダに「Customers」という名前を付けます。

    Customers フォルダにも、一部のユーザーだけがアクセスできるページを格納します。

  3. EmployeesOnly フォルダ内に Discounts.aspx という名前の新しいページを作成します。

  4. Customers フォルダ内に Support.aspx という名前の新しいページを作成します。

  5. Web サイトのルート内に Hardware.aspx、Software.aspx、Training.aspx、および Consulting.aspx という名前の新しいページを 4 つ作成します。

  6. 作成した新しい各ページで、デザイン ビューに切り替え、ページをブラウザで表示したときに識別できるようにページの最上部にページ タイトルを入力し、そのタイトルを <H1> として書式設定します。

  7. 新しいページを保存して閉じます。

アクセス ルールの作成

作成する Web サイトでは、ユーザーがそれぞれのロールに応じて別のページにアクセスできるようにします。そのため、各ロールがアクセスできるフォルダを判断するためのアクセス ルールを作成する必要があります。

EmployeesOnly フォルダに関するアクセス ルールを設定するには

  1. Visual Web Developer で、[Web サイト] メニューの [ASP.NET の構成] をクリックします。

    Web サイト管理ツールが表示されます。

  2. [セキュリティ] タブの [アクセス規則の管理] をクリックし、[新しいアクセス規則の追加] をクリックします。この操作により、[新しいアクセス規則の追加] ページが開きます。

  3. [この規則のディレクトリの選択] でルート ノードを展開し、[EmployeesOnly] をクリックします。

  4. [適用する規則] の下の [ロール] をクリックし、そのボックス内の employees をクリックします。

  5. [アクセス許可] の下の [許可] をクリックします。

    作成したルールでは、EmployeesOnly フォルダへのアクセス許可を employees ロール内のすべてのメンバに付与します。

  6. [OK] をクリックします。

    新しいルールが [アクセス規則の管理] テーブルに表示されます。ユーザーが EmployeesOnly フォルダのページを要求すると、このルールが上から下に順に適用され、そのユーザーがそのページにアクセスできるかどうかが判断されます。そのユーザーが employees ロールのメンバでない場合、このフォルダ内のページは表示されません。

  7. [新しいアクセス規則の追加] リンクをクリックします。

  8. [適用する規則] の下の [すべてのユーザー] をクリックします。

  9. [アクセス許可] の下の [拒否] をクリックして、[OK] をクリックします。

    EmployeesOnly フォルダの 2 つ目のルールでは、employees ロール内のユーザー以外がこのフォルダにアクセスできないようにします。これらのルールは、グリッドに表示されている順で上から下に処理されます。

    最初のルール (許可) では、employees ロール内のユーザーにアクセスを許可します。2 つ目のルール (拒否) では、他のすべてのユーザーのアクセスを拒否します。アプリケーションに必要な数だけ許可ルールと拒否ルールを作成できます。ユーザーが EmployeesOnly フォルダのページを要求すると、このルールが上から下に順に適用され、そのユーザーがそのページにアクセスできるかどうかが判断されます。

次の手順では、前の Customers フォルダの手順を繰り返します。ただし、Customers フォルダへのアクセスには customers ロールと employees ロールの両方を使用できます。実際のシナリオとしては、企業で電話サポートを担当する従業員が顧客に対して表示されるページにアクセスできるようにする場合などが想定されます。

Customers フォルダに関するアクセス ルールを設定するには

  1. [新しいアクセス規則の追加] リンクをクリックします。

  2. [適用する規則] の下の [ロール] ボックスをクリックし、そのボックス内の customers をクリックします。

  3. [アクセス許可] の下の [許可] をクリックして、[OK] をクリックします。

    作成したルールでは、Customers フォルダへのアクセス許可を customers ロール内のすべてのメンバーに付与します。

  4. [アクセス規則の管理]Customers をクリックします。

  5. [新しいアクセス規則の追加] リンクをクリックします。

  6. [適用する規則] の下の [ロール] ボックスをクリックし、そのボックス内の [employees] をクリックします。

  7. [アクセス許可] の下の [許可] をクリックして、[OK] をクリックします。

    作成したルールでは、Customers フォルダへのアクセス許可を employees ロール内のすべてのメンバーにも付与します。

  8. [アクセス規則の管理]Customers をクリックします。

  9. [新しいアクセス規則の追加] リンクをクリックします。

  10. [適用する規則] の下の [すべてのユーザー] ボックスをクリックします。

  11. [アクセス許可] の下の [拒否] をクリックして、[OK] をクリックします。

    Customers フォルダの最初と 2 番目のルールでは、customers ロールと employees ロール内のアカウントを持つユーザー以外が Customers フォルダにアクセスするのを確実に防止します。これらのルールは、グリッドに表示されている順で上から下に処理されます。

    最初のルール (許可) では、members ロール内のアカウントを持つユーザーにアクセスを許可します。2 つ目のルール (拒否) では、他のすべてのユーザーのアクセスを拒否します。アプリケーションに必要な数だけ許可ルールと拒否ルールを作成できます。ユーザーが Customers フォルダのページを要求すると、このルールが上から下に順に適用され、そのユーザーがそのページにアクセスできるかどうかが判断されます。

  12. [終了] をクリックして [セキュリティ] タブに戻ります。

サイト マップを作成し、セキュリティ トリミングを有効にする

チュートリアルのこのセクションでは、Web サイトのナビゲーション構造を説明するサイト マップを作成し、Web.config ファイルを編集してサイトマップ ノードのセキュリティ トリミングを有効にします。

サイト マップの作成

サイトのナビゲーションを使用するには、サイト内のページ レイアウトを説明する方法が必要です。既定では、ページ タイトルと URL を含むサイトの階層構造を格納した XML ファイルを作成します。

各ページは、サイト マップの siteMapNode 要素として表されます。最上位のノードは、ホーム ページを表し、子ノードはサイト内で下位にあるページを表します。

サイト マップを作成するには

  1. ソリューション エクスプローラで、Web サイトの名前を右クリックし、[新しい項目の追加] をクリックします。

  2. [新しい項目の追加] ダイアログ ボックスで :

    1. [Visual Studio にインストールされたテンプレート][サイト マップ] をクリックします。

    2. [名前] ボックス内の名前が Web.sitemap であることを確認します。

      ms178429.alert_note(ja-jp,VS.90).gifメモ :

      このファイルには Web.sitemap という名前を付け、このファイルが Web サイトのルートに表示されるようにする必要があります。

    3. [追加] をクリックします。

  3. 次の XML コンテンツを Web.sitemap ファイルにコピーし、この XML ファイルの既定のコンテンツを上書きします。

    <?xml version="1.0" encoding="utf-8" ?>
    <siteMap>
      <siteMapNode title="Home" description="Home" 
           url="~/default.aspx" >
        <siteMapNode title="Products" 
             description="Our products" 
             roles="*">
          <siteMapNode title="Hardware" 
               description="Hardware we offer" 
               url="~/Hardware.aspx" />
          <siteMapNode title="Software" 
               description="Software for sale" 
               url="~/Software.aspx" />
          <siteMapNode title="Discounts" 
               description="Employee Discounts" 
               url="~/EmployeesOnly/Discounts.aspx" />
        </siteMapNode>
        <siteMapNode title="Services" 
             description="Services we offer" 
             roles="*">
          <siteMapNode title="Training" 
               description="Training" 
               url="~/Training.aspx" />
          <siteMapNode title="Consulting" 
               description="Consulting" 
               url="~/Consulting.aspx" />
          <siteMapNode title="Support" 
               description="Support" 
               url="~/Customers/Support.aspx" />
        </siteMapNode>
      </siteMapNode>
    </siteMap>
    

    3 段階に入れ子にした siteMapNode 要素のセットが Web.sitemap ファイルに格納されます。各要素の構造は同じです。唯一の相違点は、各要素が XML 階層の別の場所にある点です。

    サンプルの XML ファイルで定義されたページの URL は修飾されていません。つまり、すべてのページがアプリケーションのルートに対する相対 URL で処理されます。ただし、ページには自由に URL を指定できます。サイト マップで定義する論理構造は、フォルダ内のページの物理的なレイアウトに対応している必要はありません。

    roles 属性は、サイト マップ内の 2 つのノード (Products と Services) だけに設定します。これら 2 つのノードには url 属性がありません。ASP.NET では、.aspx ページのアクセス ルールを使用して、サイト マップ ノードをユーザーに表示するかどうかを検証します。ページに url 属性が設定されていない場合にセキュリティ トリミングが有効になっていると、どのユーザーもそのページを表示できません。ページの roles 属性をワイルドカード文字であるアスタリスク (*) に設定すると、すべてのユーザーがそのページにアクセスできます。

  4. ファイルを保存して閉じます。

セキュリティ トリミングの有効化

作成したサイト マップでは既定のサイトマップ プロバイダ XmlSiteMapProvider が使用されます。ASP.NET では既定のサイト マップ用に組み込みの設定が用意されているため、Web.config ファイルには siteMap 要素 (ASP.NET 設定スキーマ) 要素が必要ありません。ただし、セキュリティ トリミングは既定で有効になっていないので、siteMap 要素 (ASP.NET 設定スキーマ) 要素を設定する必要があります。

セキュリティ トリミングを有効にするには

  1. Visual Web Developer で Web サイトのルートを右クリックし、[フォルダの更新] をクリックします。

    この操作により、ソリューション エクスプローラに Web.config ファイルが表示されます。Web.config ファイルを作成するには、このチュートリアルで既に実行したように、[新しい項目の追加] をクリックするか、[ASP.NET の構成] ツールを使用します。

  2. Web.config ファイルを開きます。

  3. siteMap 要素 (ASP.NET 設定スキーマ) 要素が既に存在する場合に備えて、この要素を検索します。

    siteMap 要素 (ASP.NET 設定スキーマ) 要素が存在しない場合、次のコードを system.web 要素 (ASP.NET 設定スキーマ) 要素内に貼り付けます。他の要素内に貼り付けないように注意してください。

    <siteMap defaultProvider="XmlSiteMapProvider" enabled="true">
      <providers>
        <add name="XmlSiteMapProvider"
          description="Default SiteMap provider."
          type="System.Web.XmlSiteMapProvider"
          siteMapFile="Web.sitemap"
          securityTrimmingEnabled="true" />
      </providers>
    </siteMap>
    
  4. Web.config ファイルを保存して閉じます。

セキュリティ トリミング機能では、個々の要求のたびに URL 承認を使用して、siteMapNode 要素に対応する URL にユーザーがアクセスできるかどうかを判断します。承認を受けるノードの数によっては、この追加の処理によってパフォーマンスが低下することがあります。セキュリティ トリミングを有効にする場合は、次の方法によってパフォーマンスを改善できます。

  • サイト マップ ファイルのノード数を制限する   150 以上のノードがサイト マップ ファイルに含まれている場合は、セキュリティ トリミング操作の実行にかなりの時間がかかる可能性があります。

  • ロール属性を siteMapNode 要素に明示的に設定する   どのクライアントに対して表示してもかまわないノードについては roles 属性をアスタリスク (*) に設定する必要があります。roles 属性が存在すると、ユーザーがこの属性にリストされているロールのいずれかに所属する場合、ASP.NET は、siteMapNode に関連付けられている URL の URL 承認を省略できます。

ページにナビゲーション メニューを作成する。

ここまででサイト マップとページを作成したので、サイトにナビゲーションを追加できます。

または、SiteMapPath コントロールまたは Menu コントロールを使用してナビゲーションを表示することもできます。詳細については、「ASP.NET ナビゲーション コントロール」または「チュートリアル : Web サイトへのサイト ナビゲーションの追加」を参照してください。

TreeView コントロールを使用したナビゲーション メニューの作成

折りたたみ可能なナビゲーション メニューとして機能する TreeView コントロールを使用します。

ナビゲーション メニューを追加するには

  1. Default.aspx ページを開き、デザイン ビューに切り替えます。

  2. ツールボックスの [データ] グループから、[SiteMapDataSource] コントロールをページにドラッグします。

    既定の設定では、前に作成した Web.sitemap ファイルから SiteMapDataSource コントロールが情報を取得します。そのため、コントロールの補足情報を指定する必要はありません。

  3. ツールボックスの [ナビゲーション] グループから [TreeView] コントロールをページにドラッグします。

    [TreeView タスク] メニューが表示されます。

  4. [TreeView タスク] メニューの [データ ソースの選択] ボックスで SiteMapDataSource1 をクリックします。

  5. このページを保存します。

SiteMapPath コントロールを使用したナビゲーション メニューの作成

ルート ページへ戻るパスをユーザーに表示する階層リンク形式のナビゲーションとして機能する SiteMapPath コントロールを使用します。

ナビゲーション メニューを追加するには

  1. Hardware.aspx ページを開き、デザイン ビューに切り替えます。

    SiteMapPath コントロールの機能を説明するため、かなり下位にあるページにこのコントロールを配置します。

  2. このページで <H1> タグの内側にタイトルを追加した場合は、カーソルを右側に置き、Enter キーを押します。

  3. ツールボックスの [ナビゲーション] グループから [SiteMapPath] コントロールをページにドラッグします。

    [SiteMapPath タスク] メニューが表示されます。ただし、データ ソースを設定する必要はありません。

  4. このページを保存します。

セキュリティ トリミングのテスト

この段階で、使用するサイトをテストできます。

セキュリティ トリミングをテストするには

  1. Default.aspx ページに切り替え、CTRL+F5 キーを押して、ページを実行します。

    TreeView コントロール内には、Discounts リンクと Support リンクのどちらも表示されない必要があります。

  2. [ログイン] をクリックします。

  3. customers ロール内のユーザー アカウントである Customer01 としてログインします。

    TreeView コントロール内には、Support リンクが表示される必要があります。

  4. [ログアウト] をクリックして、[ログイン] をクリックします。

  5. employees ロール内のユーザー アカウントである Employee01 としてログインします。

    ここでは、TreeView コントロール内に Discounts リンクと Support リンクの両方が表示される必要があります。employees ロールについてはリンクが制限されていないので、このロールのメンバである従業員に対しては使用可能なすべてのリンクが表示されます。

  6. Default.aspx ページの [Hardware] をクリックし、SiteMapPath コントロールを表示します。

    SiteMapPath コントロールによって、ホーム ページから "Hardware" ページへのパスが表示される必要があります。

現在の状態の Web サイトでは、ナビゲーション ツリーはホーム ページだけに表示されます。同じ SiteMapDataSource コントロールと TreeView コントロールをアプリケーション内の各ページに追加して、各ページにナビゲーション メニューを表示できます。また、ナビゲーション ツリーをマスタ ページに配置して、マスタ ページ ファイルによって参照されるすべてのページが自動的に表示されるようにすることもできます。

次の手順

このチュートリアルでは、ASP.NET サイト ナビゲーションの基本的な機能 (ナビゲーション コントロール、ロール管理、およびセキュリティ トリミング) について説明しました。ナビゲーションの他の機能も試すことができます。たとえば、ナビゲーション コントロールをマスタ ページに配置して、そのマスタ ページを参照するすべてのページでそれらのナビゲーション コントロールを表示することもできます。詳細については、「チュートリアル : Visual Web Developer での ASP.NET マスタ ページの作成と使用」を参照してください。

参照

処理手順

チュートリアル : Web サイトへのサイト ナビゲーションの追加

概念

ASP.NET サイト ナビゲーションの概要

ASP.NET のサイト マップ セキュリティ トリミング

ASP.NET のサイト ナビゲーションの保護

データ アクセスのセキュリティ保護

独自のコード アクセス許可の作成

その他の技術情報

ホストされた環境での ASP.NET アプリケーションのセキュリティ