WindowsTokenRoleProvider.IsUserInRole Methode

Definitie

Hiermee wordt een waarde opgehaald die aangeeft of de opgegeven gebruiker zich in de opgegeven ingebouwde Windows rol bevindt.

Overloads

Name Description
IsUserInRole(String, WindowsBuiltInRole)

Hiermee wordt een waarde opgehaald die aangeeft of de opgegeven gebruiker zich in de opgegeven ingebouwde Windows rol bevindt.

IsUserInRole(String, String)

Hiermee wordt een waarde opgehaald die aangeeft of de opgegeven gebruiker zich in de opgegeven Windows groep bevindt.

IsUserInRole(String, WindowsBuiltInRole)

Hiermee wordt een waarde opgehaald die aangeeft of de opgegeven gebruiker zich in de opgegeven ingebouwde Windows rol bevindt.

public:
 bool IsUserInRole(System::String ^ username, System::Security::Principal::WindowsBuiltInRole role);
public bool IsUserInRole(string username, System.Security.Principal.WindowsBuiltInRole role);
override this.IsUserInRole : string * System.Security.Principal.WindowsBuiltInRole -> bool
Public Function IsUserInRole (username As String, role As WindowsBuiltInRole) As Boolean

Parameters

username
String

De gebruikersnaam die moet worden gezocht in het formulier DOMEIN\gebruikersnaam.

role
WindowsBuiltInRole

De Windows rol waarin moet worden gezocht.

Retouren

true als de opgegeven gebruiker de opgegeven Windows rol heeft; anders false.

Uitzonderingen

username is null.

De gebruiker die momenteel wordt uitgevoerd, heeft geen geverifieerde WindowsIdentity koppeling.User Voor niet-HTTP-scenario's heeft de gebruiker die momenteel wordt uitgevoerd, geen geverifieerde WindowsIdentity bijlage.CurrentPrincipal

– of –

username komt niet overeen met de Name huidige WindowsIdentity.

Voorbeelden

In het volgende codevoorbeeld wordt programmatisch gecontroleerd of de momenteel aangemelde gebruiker de rol Administrators heeft voordat de gebruiker rollengegevens voor de toepassing kan weergeven. Zie voor een voorbeeld van een Web.config-bestand dat rolbeheer WindowsTokenRoleProvidermogelijk maakt.

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

Opmerkingen

Met de methode IsUserInRole kunt u controleren of een gebruiker zich in een van de algemene Windows rollen bevindt die worden beschreven door de opsomming WindowsBuiltInRole. Deze methode is handig voor toepassingen die zijn gelokaliseerd in meerdere talen. Deze overbelasting van de IsUserInRole methode maakt geen deel uit van de RoleProvider basisklasse en kan alleen worden geopend door de Provider eigenschap van de Roles klasse als het WindowsTokenRoleProvider type te casten.

U kunt de IsUserInRole methode alleen aanroepen voor de momenteel aangemelde gebruiker, zoals aangegeven door de LOGON_USER servervariabele. Als de waarde die is opgegeven in de username parameter niet de naam is van de momenteel aangemelde gebruiker, wordt er een HttpException gegenereerd.

IsUserInRole de methode kan alleen worden aangeroepen voor de momenteel aangemelde gebruiker die is geïdentificeerd door de LOGON_USER servervariabele. De huidige aangemelde gebruiker moet een Windows geverifieerde gebruiker zijn. Zie ASP.NET Authentication voor meer informatie over ASP.NET en Windows authentication.

Zie ook

Van toepassing op

IsUserInRole(String, String)

Hiermee wordt een waarde opgehaald die aangeeft of de opgegeven gebruiker zich in de opgegeven Windows groep bevindt.

public:
 override bool IsUserInRole(System::String ^ username, System::String ^ roleName);
public override bool IsUserInRole(string username, string roleName);
override this.IsUserInRole : string * string -> bool
Public Overrides Function IsUserInRole (username As String, roleName As String) As Boolean

Parameters

username
String

De gebruikersnaam die moet worden gezocht in het formulier DOMEIN\gebruikersnaam.

roleName
String

De Windows groep om te zoeken in het formulier DOMAIN\rolename.

Retouren

true als de opgegeven gebruikersnaam zich in de opgegeven Windows groep bevindt; anders false.

Uitzonderingen

username is null.

– of –

roleName is null.

De gebruiker die momenteel wordt uitgevoerd, heeft geen geverifieerde WindowsIdentity koppeling.User Voor niet-HTTP-scenario's heeft de gebruiker die momenteel wordt uitgevoerd, geen geverifieerde WindowsIdentity bijlage.CurrentPrincipal

– of –

username komt niet overeen met de Name huidige WindowsIdentity.

– of –

Er is een fout opgetreden bij het ophalen van de Windows groepsgegevens van de gebruiker.

Voorbeelden

In het volgende codevoorbeeld wordt programmatisch gecontroleerd of de momenteel aangemelde gebruiker de rol Administrators heeft voordat de gebruiker rollengegevens voor de toepassing kan weergeven. Zie voor een voorbeeld van een Web.config-bestand dat rolbeheer WindowsTokenRoleProvidermogelijk maakt.

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

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

  try
  {
    if (!Roles.IsUserInRole(User.Identity.Name, @"BUILTIN\Administrators"))
    {
      Msg.Text = "You are not authorized to view user roles.";
      return;
    }
  }
  catch (HttpException e)
  {
    Msg.Text = "There is no current logged on user. Role membership cannot be verified.";
    return;
  }


  // Bind roles to GridView.

  rolesArray = Roles.GetRolesForUser(User.Identity.Name);
  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 = ""

  Try
    If Not Roles.IsUserInRole(User.Identity.Name, "BUILTIN\Administrators") Then
      Msg.Text = "You are not authorized to view user roles."
      Return
    End If
  Catch e As HttpException
    Msg.Text = "There is no current logged on user. Role membership cannot be verified."
    Return
  End Try

  ' Bind roles to GridView.

  rolesArray = Roles.GetRolesForUser(User.Identity.Name)
  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>

Opmerkingen

De methode IsUserInRole wordt aangeroepen door de klasse Roles en de methode IsInRole van de eigenschap User om te bepalen of een gebruiker zich in een Windows groep bevindt. U kunt de IsUserInRole methode alleen aanroepen voor de momenteel aangemelde gebruiker, zoals aangegeven door de LOGON_USER servervariabele. De huidige aangemelde gebruiker moet een Windows geverifieerde gebruiker zijn. Zie ASP.NET Authentication voor meer informatie over ASP.NET en Windows authentication.

Zie ook

Van toepassing op