Aracılığıyla paylaş


RolePrincipal.IsInRole(String) Yöntem

Tanım

tarafından RolePrincipal temsil edilen kullanıcının belirtilen rolde olup olmadığını belirten bir değer alır.

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

Parametreler

role
String

Aranacak rol.

Döndürülenler

true tarafından RolePrincipal temsil edilen kullanıcı belirtilen roldeyse; değilse, false.

Uygulamalar

Özel durumlar

Identity özelliğidirnull.

Örnekler

Aşağıdaki kod örneği, kullanıcının kullanıcı rollerini görüntülemesine izin vermeden önce oturum açmış kullanıcının Yöneticiler rolünde olup olmadığını denetler.

<%@ 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>

Açıklamalar

IsInRole önce geçerli kullanıcı için önbelleğe alınmış rol adları listesinin kullanılabilir olup olmadığını belirlemek için özelliğini denetler IsRoleListCached . IsRoleListCached özelliği isetrue, önbelleğe alınan liste belirtilen rol için denetlenır. IsInRole Yöntemi önbelleğe alınan listede belirtilen rolü bulursa döndürürtrue.

IsInRole Belirtilen rolü bulamazsa, kullanıcı adının yapılandırılan ApplicationName değer için veri kaynağından bir rolle ilişkilendirilip ilişkilendirilmediğini belirlemek için varsayılan Provider örneğin yöntemini çağırırGetRolesForUser.

Şunlara uygulanır

Ayrıca bkz.