Auf Englisch lesen

Teilen über


WindowsTokenRoleProvider.GetRolesForUser(String) Methode

Definition

Ruft eine Liste der Windows-Gruppen ab, denen ein Benutzer angehört.

C#
public override string[] GetRolesForUser(string username);

Parameter

username
String

Der Benutzer, für den die Liste der Windowsgruppen im Format DOMAIN\Benutzername zurückgegeben werden soll.

Gibt zurück

String[]

Ein Zeichenfolgenarray, das die Namen aller Windows-Gruppen enthält, denen der angegebene Benutzer angehört.

Ausnahmen

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.

username ist null.

Die Vertrauensebene ist niedriger als Low.

Beispiele

Im folgenden Codebeispiel wird die GetRolesForUser -Methode verwendet, um eine Liste von Rollen für einen angegebenen Benutzer abzurufen und die Liste der Rollen an ein GridView Steuerelement zu binden. 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

Diese Methode wird von der Roles -Klasse aufgerufen, um vom Windows-Betriebssystem eine Liste der Windows-Gruppen abzurufen, in denen sich der angegebene Benutzer befindet. Die GetRolesForUser Methode kann nur für den aktuell angemeldeten Benutzer aufgerufen werden, wie durch die LOGON_USER Servervariable identifiziert. Wenn der im username Parameter angegebene Wert nicht der Name des aktuell angemeldeten Benutzers ist, wird ein System.Configuration.Provider.ProviderException ausgelöst.

Weitere Informationen zu einer ASP.NET- und Windows-Authentifizierung finden Sie unter ASP.NET-Authentifizierung.

Gilt für:

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

Weitere Informationen