Roles.Provider 속성

정의

애플리케이션의 기본 역할 공급자를 가져옵니다.Gets the default role provider for the application.

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

속성 값

RoleProvider 추상 클래스를 상속하는 클래스로 노출되는 애플리케이션의 기본 역할 공급자입니다.The default role provider for the application, which is exposed as a class that inherits the RoleProvider abstract class.

예외

역할 관리 사용 되지 않습니다.Role management is not enabled.

예제

다음 코드 예제에서는 캐스팅으로 기본 역할 공급자는 WindowsTokenRoleProvider 애플리케이션의 역할 설정을 볼 수 있도록 허용 하기 전에 현재 로그온 한 사용자가 관리자 역할에 있는지 여부를 확인 합니다.The following code example casts the default role provider as a WindowsTokenRoleProvider and checks whether the currently logged-on user is in the Administrators role before allowing the user to view roles settings for the application. 역할 관리를 사용 하도록 설정 하는 Web.config 파일의 예제를 참조 하세요. WindowsTokenRoleProvider합니다.For an example of a Web.config file that enables role management, see WindowsTokenRoleProvider.

<%@ Page Language="C#" %>
<%@ Import Namespace="System.Web.Security" %>
<%@ Import Namespace="System.Security.Principal" %>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
    "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<script runat="server">

string[] rolesArray;

public void Page_Load()
{
  Msg.Text = "";

  WindowsPrincipal p = (WindowsPrincipal)System.Threading.Thread.CurrentPrincipal;

  if (!p.IsInRole(WindowsBuiltInRole.Administrator))
  {
    Msg.Text = "You are not authorized to view user roles.";
    return;
  }


  // Bind roles to GridView.

  try
  {
    rolesArray = Roles.GetRolesForUser(User.Identity.Name);
  }
  catch (HttpException e)
  {
    Msg.Text = "There is no current logged on user. Role membership cannot be verified.";
    return;
  }

  UserRolesGrid.DataSource = rolesArray;
  UserRolesGrid.DataBind();

  UserRolesGrid.Columns[0].HeaderText = "Roles for " + User.Identity.Name;
}

</script>
<html xmlns="http://www.w3.org/1999/xhtml" >
<head>
<title>Sample: View User Roles</title>
</head>
<body>

<form runat="server" id="PageForm">

  <h3>View User Roles</h3>

  <asp:Label id="Msg" ForeColor="maroon" runat="server" /><br />

  <table border="0" cellspacing="4">
    <tr>
      <td valign="top"><asp:GridView runat="server" CellPadding="4" id="UserRolesGrid" 
                                     AutoGenerateColumns="false" Gridlines="None" 
                                     CellSpacing="0" >
                         <HeaderStyle BackColor="navy" ForeColor="white" />
                         <Columns>
                           <asp:TemplateField HeaderText="Roles" >
                             <ItemTemplate>
                               <%# Container.DataItem.ToString() %>
                             </ItemTemplate>
                           </asp:TemplateField>
                         </Columns>
                       </asp:GridView></td>
    </tr>
  </table>

</form>

</body>
</html>
<%@ Page Language="VB" %>
<%@ Import Namespace="System.Web.Security" %>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
    "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<script runat="server">

Dim rolesArray() As String

Public Sub Page_Load()
  Msg.Text = ""

  Dim provider As WindowsTokenRoleProvider = CType(Roles.Provider, WindowsTokenRoleProvider)

  If Not provider.IsUserInRole(User.Identity.Name, _
                               System.Security.Principal.WindowsBuiltInRole.Administrator) Then
    Msg.Text = "You are not authorized to view user roles."
    Return
  End If


  ' Bind roles to GridView.

  Try
    rolesArray = Roles.GetRolesForUser(User.Identity.Name)
  Catch e As HttpException
    Msg.Text = "There is no current logged on user. Role membership cannot be verified."
    Return
  End Try

  UserRolesGrid.DataSource = rolesArray
  UserRolesGrid.DataBind()

  UserRolesGrid.Columns(0).HeaderText = "Roles for " & User.Identity.Name
End Sub

</script>
<html xmlns="http://www.w3.org/1999/xhtml" >
<head>
<title>Sample: View User Roles</title>
</head>
<body>

<form runat="server" id="PageForm">

  <h3>View User Roles</h3>

  <asp:Label id="Msg" ForeColor="maroon" runat="server" /><br />

  <table border="0" cellspacing="4">
    <tr>
      <td valign="top"><asp:GridView runat="server" CellPadding="4" id="UserRolesGrid" 
                                     AutoGenerateColumns="false" Gridlines="None" 
                                     CellSpacing="0" >
                         <HeaderStyle BackColor="navy" ForeColor="white" />
                         <Columns>
                           <asp:TemplateField HeaderText="Roles" >
                             <ItemTemplate>
                               <%# Container.DataItem.ToString() %>
                             </ItemTemplate>
                           </asp:TemplateField>
                         </Columns>
                       </asp:GridView></td>
    </tr>
  </table>

</form>

</body>
</html>

설명

Provider 속성을 사용 하면 애플리케이션에 대 한 기본 역할 공급자를 직접 참조할 수 있습니다.The Provider property enables you to directly reference the default role provider for an application. 이는 RoleProvider 추상 클래스에 속하지 않는 역할 공급자의 사용자 지정 멤버에 액세스 하는 데 주로 사용 됩니다.This is commonly used to access custom members of the role provider that are not part of the RoleProvider abstract class.

예를 들어 WindowsTokenRoleProvider 클래스에는 WindowsBuiltInRole 열거형 값을 사용 하 여 사용자가 공용 Windows 역할에 있는지 여부를 확인할 수 있도록 하는 IsUserInRole 메서드의 오버 로드가 포함 됩니다.For example, the WindowsTokenRoleProvider class includes an overload of the IsUserInRole method that enables you to determine whether a user is in a common Windows role by using a WindowsBuiltInRole enumeration value. 에 대 한 참조를 WindowsTokenRoleProvider 를 사용 하 여 애플리케이션을 가져올 수 있습니다에 대 한 클래스를 Provider 속성으로 캐스팅 될 수 있습니다를 WindowsTokenRoleProvider 참조 하기 위해는 IsUserInRole 오버 로드.A reference to the WindowsTokenRoleProvider class for an application can be obtained by using the Provider property and can be cast as a WindowsTokenRoleProvider in order to refer to the IsUserInRole overload.

여러 역할 공급자는 애플리케이션에 대해 구성 된 경우 다른 역할 공급자를 사용 하 여 액세스할 수 있습니다는 Providers 컬렉션입니다.If multiple role providers are configured for an application, you can access different role providers using the Providers collection.

적용 대상

추가 정보