Roles クラスとは? わかりやすく解説

Roles クラス

メモ : このクラスは、.NET Framework version 2.0新しく追加されたものです。

ASP.NET アプリケーション承認チェック使用するロールユーザー メンバシップ管理します。このクラス継承できません。

名前空間: System.Web.Security
アセンブリ: System.Web (system.web.dll 内)
構文構文

解説解説

ASP.NETロール管理によって、ロール呼ばれるユーザー グループ基づいてアプリケーション承認管理できますユーザーロール割り当てることによって、ユーザー名基づいた承認指定する代わり、またはそれに加えてロール基づいて Web アプリケーション各部または機能対すアクセス制御できます。たとえば、従業員アプリケーションには Managers、Employees、Directors などのロール作成し、各ロール異な権限指定できます

ユーザー複数ロール所属できます。たとえば、ディスカッション フォーラムサイトでは、一部ユーザーが Members と Moderators の両方ロール所属します。サイトの各ロールには異な権限を定義でき、両方ロール属すユーザーには両方権限与えられます。

ASP.NET アプリケーションロール管理有効にするには、次の例にあるように、アプリケーションの Web.config ファイルsystem.web セクションの roleManager 要素使用します

<configuration>
  <connectionStrings>
    <add name="SqlServices" connectionString="Data Source=localhost;Initial Catalog=aspnetdb;Integrated
 Security=SSPI;" />
  </connectionStrings>

  <system.web>
    <authentication mode="Forms" >
      <forms loginUrl="login.aspx"
      name=".ASPXFORMSAUTH" />
    </authentication>

  <roleManager defaultProvider="SqlProvider" 
    enabled="true"
    cacheRolesInCookie="true"
    cookieName=".ASPROLES"
    cookieTimeout="30"
    cookiePath="/"
    cookieRequireSSL="false"
    cookieSlidingExpiration="true"
    cookieProtection="All" >
    <providers>
      <add
        name="SqlProvider"
        type="System.Web.Security.SqlRoleProvider"
        connectionStringName="SqlServices"
        applicationName="SampleApplication" />
      </providers>
    </roleManager>
  </system.web>
</configuration>

承認ルールWeb アプリケーション構成ファイル指定するか、またはプログラムによってコード記述します。たとえば、次の Web.config ファイルauthorization セクションでは、匿名ユーザーアクセス拒否することによってユーザーログオン要求し、Administrators ロールユーザーのみにアクセス許可してます。

<authorization>
  <deny users="?" />
  <allow roles="Administrators" />
  <deny users="*" />
</authorization>

アプリケーションの Web.config ファイルauthorization セクション使用してロール基づいた承認指定すると、アプリケーションユーザー認証されているユーザー ID提供する必要がありますユーザーは、Windows または Forms 認証使用して認証できます匿名ユーザーロール割り当てることはできません。ロールASP.NETMembership クラス独立して使用することも、関連して使用することもできます

ロール メンバシッププログラムによって検証するには、Roles クラスまたは Page.User プロパティを IsUserInRole メソッドと共に使用します。または Page.User プロパティを IPrincipal.IsInRole メソッドと共に使用することもできますプログラムによってロール メンバシップチェックするコード例については、このトピックの「使用例」を参照してください

Roles クラス使用してロール作成または削除しユーザー追加または削除することもできます

メモメモ

WindowsTokenRoleProvider クラス使用するようにアプリケーション構成している場合ロールおよびそのロール メンバシップ変更することはできません。WindowsTokenRoleProvider クラス検証するメンバシップは、Windows セキュリティ グループのみです。この場合ASP.NET ロール代わりに Windows ユーザー アカウント管理使用してグループ作成または削除しグループ メンバシップ管理する必要があります

ロール情報は、いくつかのデータ ソース保存できます

ユーザーブラウザCookie受け入れ場合は、ロール情報ユーザーコンピュータCookie保存できますASP.NET は、各ページ要求に対して Cookie からユーザーロール情報読み取ります。これによって、データ ソースからロール情報取得するために必要な通信量減少するので、アプリケーションパフォーマンス向上しますロール情報サイズ大きいために Cookie保存できない場合ASP.NET最新ロール情報Cookie保存しその他のロール情報データ ソースから必要に応じて取得しますユーザーブラウザCookieサポートしていないか、または Cookie無効になっている場合ロール情報Cookieキャッシュされません。

ASP.NET ロール構成する際に CookieProtectionValue プロパティ指定すると、Cookieキャッシュされるロール名の信頼性向上しますCookieProtectionValue既定値All です。これは、Cookie 内のロール名を暗号化し、Cookie内容改ざんされていないかどうか検査します

使用例使用例

ASP.NET メンバシップASP.NET ロール両方使用しSqlRoleProvider使用してメンバシップロール情報SQL Server データベース保存するように構成されているアプリケーションの Web.config ファイルの例次に示しますユーザーフォーム認証によって認証され、Administrators ロールユーザーのみがアプリケーションアクセスできます

<configuration>
  <connectionStrings>
    <add name="SqlServices" connectionString="Data Source=localhost;Initial Catalog=aspnetdb;Integrated
 Security=SSPI;" />
  </connectionStrings>

  <system.web>
    <authentication mode="Forms" >
      <forms loginUrl="login.aspx"
      name=".ASPXFORMSAUTH" />
    </authentication>

    <authorization>
      <deny users="?" />
      <allow roles="Administrators" />
      <deny users="*" />
    </authorization>

    <membership defaultProvider="AspNetSqlProvider" userIsOnlineTimeWindow="15">
    </membership>

    <roleManager defaultProvider="SqlProvider" 
      enabled="true"
      cacheRolesInCookie="true"
      cookieName=".ASPROLES"
      cookieTimeout="30"
      cookiePath="/"
      cookieRequireSSL="true"
      cookieSlidingExpiration="true"
      cookieProtection="All" >

      <providers>
        <clear />
        <add
          name="SqlProvider"
          type="System.Web.Security.SqlRoleProvider"
          connectionStringName="SqlServices"
          applicationName="SampleApplication" />
        </providers>

    </roleManager>
  </system.web>
</configuration>

ログオンしているユーザーに他のユーザーロール参照許可する前にユーザーが Administrators ロール属しているかどうかプログラムによってチェックするコード例次に示します

.NET Framework のセキュリティ.NET Frameworkセキュリティ
継承階層継承階層
System.Object
  System.Web.Security.Roles
スレッド セーフスレッド セーフ
この型の public static (Visual Basic では Shared) メンバはすべて、スレッド セーフです。インスタンス メンバ場合は、スレッド セーフであるとは限りません。
プラットフォームプラットフォーム
バージョン情報バージョン情報
参照参照



英和和英テキスト翻訳>> Weblio翻訳
英語⇒日本語日本語⇒英語
  

辞書ショートカット

すべての辞書の索引

「Roles クラス」の関連用語

Roles クラスのお隣キーワード
検索ランキング

   

英語⇒日本語
日本語⇒英語
   



Roles クラスのページの著作権
Weblio 辞書 情報提供元は 参加元一覧 にて確認できます。

   
日本マイクロソフト株式会社日本マイクロソフト株式会社
© 2024 Microsoft.All rights reserved.

©2024 GRAS Group, Inc.RSS