Auf Englisch lesen

Teilen über


WindowsTokenRoleProvider.IsUserInRole Methode

Definition

Ruft einen Wert ab, der angibt, ob der angegebene Benutzer die angegebene integrierte Windows-Rolle innehat.

Überlädt

IsUserInRole(String, WindowsBuiltInRole)

Ruft einen Wert ab, der angibt, ob der angegebene Benutzer die angegebene integrierte Windows-Rolle innehat.

IsUserInRole(String, String)

Ruft einen Wert ab, der angibt, ob der angegebene Benutzer der angegebenen Windows-Gruppe angehört.

IsUserInRole(String, WindowsBuiltInRole)

Ruft einen Wert ab, der angibt, ob der angegebene Benutzer die angegebene integrierte Windows-Rolle innehat.

C#
public bool IsUserInRole(string username, System.Security.Principal.WindowsBuiltInRole role);

Parameter

username
String

Der zu suchende Benutzername im Format DOMAIN\Benutzername.

role
WindowsBuiltInRole

Die Windows-Rolle, in der gesucht werden soll.

Gibt zurück

true, wenn der angegebene Benutzer die angegebene Windows-Rolle innehat, andernfalls false.

Ausnahmen

username ist null.

Für den gegenwärtig ausgeführten Benutzer ist keine authentifizierte WindowsIdentity an User angefügt. In anderen Szenarien als HTTP-Szenarien ist für den gegenwärtig ausgeführten Benutzer keine authentifizierte WindowsIdentity an CurrentPrincipal angefügt.

- oder -

username stimmt nicht mit dem Name der aktuellen WindowsIdentity überein.

Beispiele

Im folgenden Codebeispiel wird programmgesteuert überprüft, ob sich der aktuell angemeldete Benutzer in der Rolle Administratoren befindet, bevor der Benutzer Rolleninformationen für die Anwendung anzeigen kann. Ein Beispiel für eine Web.config-Datei, die die Rollenverwaltung aktiviert, finden Sie unter WindowsTokenRoleProvider.

ASP.NET (C#)
<%@ 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>

Hinweise

Mit IsUserInRole der -Methode können Sie überprüfen, ob sich ein Benutzer in einer der allgemeinen Windows-Rollen befindet, die durch die WindowsBuiltInRole Enumeration beschrieben werden. Diese Methode ist nützlich für Anwendungen, die in mehrere Sprachen lokalisiert sind. Diese Überladung der IsUserInRole -Methode ist nicht Teil der RoleProvider Basisklasse und kann nur durch Umwandlung der Provider -Eigenschaft der Roles -Klasse als WindowsTokenRoleProvider Typ zugegriffen werden.

Sie können die IsUserInRole -Methode nur für den aktuell angemeldeten Benutzer aufrufen, wie durch die LOGON_USER Servervariable identifiziert. Wenn der im username Parameter angegebene Wert nicht der Name des aktuell angemeldeten Benutzers ist, wird ein HttpException ausgelöst.

IsUserInRole -Methode kann nur für den aktuell angemeldeten Benutzer aufgerufen werden, der von der LOGON_USER Servervariablen identifiziert wird. Der aktuell angemeldete Benutzer muss ein windows-authentifizierter Benutzer sein. Weitere Informationen zur ASP.NET- und Windows-Authentifizierung finden Sie unter ASP.NET-Authentifizierung.

Weitere Informationen

Gilt für:

.NET Framework 4.8.1 und andere Versionen
Produkt Versionen
.NET Framework 2.0, 3.0, 3.5, 4.0, 4.5, 4.5.1, 4.5.2, 4.6, 4.6.1, 4.6.2, 4.7, 4.7.1, 4.7.2, 4.8, 4.8.1

IsUserInRole(String, String)

Ruft einen Wert ab, der angibt, ob der angegebene Benutzer der angegebenen Windows-Gruppe angehört.

C#
public override bool IsUserInRole(string username, string roleName);

Parameter

username
String

Der zu suchende Benutzername im Format DOMAIN\Benutzername.

roleName
String

Die zu suchende Windows-Gruppe im Format DOMAIN\Rollenname.

Gibt zurück

true, wenn der angegebene Benutzer der angegebenen Windows-Gruppe angehört, andernfalls false.

Ausnahmen

username ist null.

- oder -

roleName ist null.

Für den gegenwärtig ausgeführten Benutzer ist keine authentifizierte WindowsIdentity an User angefügt. In anderen Szenarien als HTTP-Szenarien ist für den gegenwärtig ausgeführten Benutzer keine authentifizierte WindowsIdentity an CurrentPrincipal angefügt.

- oder -

username stimmt nicht mit dem Name der aktuellen WindowsIdentity überein.

- oder -

Beim Abrufen der Windows-Gruppeninformationen des Benutzers ist ein Fehler aufgetreten.

Beispiele

Im folgenden Codebeispiel wird programmgesteuert überprüft, ob sich der aktuell angemeldete Benutzer in der Rolle Administratoren befindet, bevor der Benutzer Rolleninformationen für die Anwendung anzeigen kann. Ein Beispiel für eine Web.config-Datei, die die Rollenverwaltung aktiviert, finden Sie unter WindowsTokenRoleProvider.

ASP.NET (C#)
<%@ 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>

Hinweise

Die IsUserInRole -Methode wird von der Roles -Klasse und der IsInRole -Methode der User -Eigenschaft aufgerufen, um zu bestimmen, ob sich ein Benutzer in einer Windows-Gruppe befindet. Sie können die IsUserInRole -Methode nur für den aktuell angemeldeten Benutzer aufrufen, wie durch die LOGON_USER Servervariable identifiziert. Der aktuell angemeldete Benutzer muss ein windows-authentifizierter Benutzer sein. Weitere Informationen zur ASP.NET- und Windows-Authentifizierung finden Sie unter ASP.NET-Authentifizierung.

Weitere Informationen

Gilt für:

.NET Framework 4.8.1 und andere Versionen
Produkt Versionen
.NET Framework 2.0, 3.0, 3.5, 4.0, 4.5, 4.5.1, 4.5.2, 4.6, 4.6.1, 4.6.2, 4.7, 4.7.1, 4.7.2, 4.8, 4.8.1