次の方法で共有


Roles.Providers プロパティ

定義

ASP.NET アプリケーションのロール プロバイダーのコレクションを取得します。

public:
 static property System::Web::Security::RoleProviderCollection ^ Providers { System::Web::Security::RoleProviderCollection ^ get(); };
public static System.Web.Security.RoleProviderCollection Providers { get; }
static member Providers : System.Web.Security.RoleProviderCollection
Public Shared ReadOnly Property Providers As RoleProviderCollection

プロパティ値

ASP.NET アプリケーション用に構成されたロール プロバイダーを含む RoleProviderCollection

例外

ロール管理は有効になっていません。

次のコード例では、アプリケーションに対して有効になっているプロバイダーと、それぞれの型を一覧表示します。

<%@ Page Language="C#" %>
<%@ Import Namespace="System.Web.Security" %>
<%@ Import Namespace="System.Configuration.Provider" %>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
    "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" >
<head>
<title>List Enabled Providers</title>
</head>
<body>

<%
foreach (RoleProvider p in Roles.Providers)
  Response.Write(p.Name + ", " + p.GetType() + "<br />");
%>

</body>
</html>
<%@ Page Language="VB" %>
<%@ Import Namespace="System.Web.Security" %>
<%@ Import Namespace="System.Configuration.Provider" %>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
    "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" >
<head>
<title>List Enabled Providers</title>
</head>
<body>

<%
For Each p As RoleProvider In Roles.Providers
  Response.Write(p.Name & ", " & p.GetType().ToString() & "<br />")
Next
%>

</body>
</html>

注釈

プロパティは Providers 、Web.config ファイルに追加されたすべてのプロバイダーを含め、アプリケーションで有効になっているすべてのロール プロバイダーを参照します。 アプリケーションの Web.config ファイルの roleManager セクションの 要素を使用してproviders、アプリケーションで使用できるロール プロバイダーを制御できます。

次の例は、既存のプロバイダー (Machine.config ファイルで指定されているものなど) を削除し、インスタンスをSqlRoleProviderアプリケーションのロール プロバイダーとして追加する roleManager セクションを示しています。

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

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

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

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

名前でロール プロバイダーのインデックスを作成し、目的の Providers 型としてキャストすることで、コレクションからプロバイダーへの厳密に型指定された参照を取得できます。

プロパティを使用して、アプリケーションの既定のプロバイダーへの参照を Provider 取得できます。

適用対象

こちらもご覧ください