RolePrincipal.IsInRole(String) 메서드

정의

RolePrincipal로 나타낸 사용자가 지정된 역할에 있는지 여부를 나타내는 값을 가져옵니다.Gets a value indicating whether the user represented by the RolePrincipal is in the specified role.

public:
 virtual bool IsInRole(System::String ^ role);
public:
 override bool IsInRole(System::String ^ role);
public bool IsInRole (string role);
public override bool IsInRole (string role);
abstract member IsInRole : string -> bool
override this.IsInRole : string -> bool
override this.IsInRole : string -> bool
Public Function IsInRole (role As String) As Boolean
Public Overrides Function IsInRole (role As String) As Boolean

매개 변수

role
String

역할에 대 한 검색입니다.The role to search for.

반환

true로 나타낸 사용자가 지정된 역할에 있으면 RolePrincipal이고, 그렇지 않으면 false입니다.true if user represented by the RolePrincipal is in the specified role; otherwise, false.

구현

예외

Identity 속성은 null입니다.The Identity property is null.

예제

다음 코드 예제에서는 사용자 역할을 볼 수 있도록 허용 하기 전에 로그온 한 사용자를 관리자 역할에 있는지 여부를 확인 합니다.The following code example checks to see whether the logged-on user is in the Administrators role before allowing the user to view user roles.

<%@ Page Language="C#" %>
<%@ 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">

string[] rolesArray;
MembershipUserCollection users;

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

  if (!User.IsInRole("Administrators"))
  {
    Msg.Text = "You are not authorized to view user roles.";
    UsersListBox.Visible = false;
    return;
  }

  if (!IsPostBack)
  {
    // Bind users to ListBox.

    users = Membership.GetAllUsers();
    UsersListBox.DataSource = users;
    UsersListBox.DataBind();
  }


  // If a user is selected, show the roles for the selected user.

  if (UsersListBox.SelectedItem != null)
  {
    // Bind roles to GridView.

    rolesArray = Roles.GetRolesForUser(UsersListBox.SelectedItem.Value);
    UserRolesGrid.DataSource = rolesArray;
    UserRolesGrid.DataBind();

    UserRolesGrid.Columns[0].HeaderText = "Roles for " + UsersListBox.SelectedItem.Value;
  }
}

</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:ListBox id="UsersListBox" DataTextField="Username" 
                                    Rows="8" AutoPostBack="true" runat="server" /></td>
      <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
Dim users As MembershipUserCollection

Public Sub Page_Load()

  Msg.Text = ""

  If Not User.IsInRole("Administrators") Then
    Msg.Text = "You are not authorized to view user roles."
    UsersListBox.Visible = False
    Return
  End If

  If Not IsPostBack Then
    ' Bind users to ListBox.

    users = Membership.GetAllUsers()
    UsersListBox.DataSource = users
    UsersListBox.DataBind()
  End If


  ' If a user is selected, show the roles for the selected user.

  If Not UsersListBox.SelectedItem Is Nothing Then
    ' Bind roles to GridView.

    rolesArray = Roles.GetRolesForUser(UsersListBox.SelectedItem.Value)
    UserRolesGrid.DataSource = rolesArray
    UserRolesGrid.DataBind()

    UserRolesGrid.Columns(0).HeaderText = "Roles for " & UsersListBox.SelectedItem.Value
  End If

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:ListBox id="UsersListBox" DataTextField="Username" 
                                    Rows="8" AutoPostBack="true" runat="server" /></td>
      <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>

설명

IsInRole는 먼저 IsRoleListCached 속성을 확인 하 여 현재 사용자에 대해 캐시 된 역할 이름 목록을 사용할 수 있는지 여부를 확인 합니다.IsInRole first checks the IsRoleListCached property to determine whether a cached list of role names for the current user is available. IsRoleListCached 속성이 true이면 지정 된 역할에 대해 캐시 된 목록을 확인 합니다.If the IsRoleListCached property is true, the cached list is checked for the specified role. IsInRole 메서드가 캐시 된 목록에서 지정 된 역할을 찾은 경우 true을 반환 합니다.If the IsInRole method finds the specified role in the cached list, it returns true.

IsInRole 지정 된 역할을 찾지 못하면 기본 Provider 인스턴스의 GetRolesForUser 메서드를 호출 하 여 사용자 이름이 구성 된 ApplicationName 값에 대 한 데이터 원본의 역할과 연결 되어 있는지 여부를 확인 합니다.If IsInRole does not find the specified role, it calls the GetRolesForUser method of the default Provider instance to determine whether the user name is associated with a role from the data source for the configured ApplicationName value.

적용 대상

추가 정보