WindowsTokenRoleProvider.GetRolesForUser(String) Methode

Definition

Ruft eine Liste der Windows Gruppen ab, in denen sich ein Benutzer befindet.

public:
 override cli::array <System::String ^> ^ GetRolesForUser(System::String ^ username);
public override string[] GetRolesForUser(string username);
override this.GetRolesForUser : string -> string[]
Public Overrides Function GetRolesForUser (username As String) As String()

Parameter

username
String

Der Benutzer, der die Liste der Windows Gruppen im Format DOMÄNE\Benutzername zurückgibt.

Gibt zurück

String[]

Ein Zeichenfolgenarray mit den Namen aller Windows Gruppen, in denen sich der angegebene Benutzer befindet.

Ausnahmen

Der aktuell ausgeführte Benutzer verfügt nicht über eine authentifizierte WindowsIdentity Anlage User. Für Nicht-HTTP-Szenarien verfügt der derzeit ausgeführte Benutzer nicht über einen authentifizierten WindowsIdentity Anhang CurrentPrincipal.

-oder-

username stimmt nicht mit dem Name aktuellen WindowsIdentityüberein.

-oder-

Fehler beim Abrufen der Windows-Gruppeninformationen des Benutzers.

username ist null.

Die Vertrauensstufe ist kleiner als Low.

Beispiele

Im folgenden Codebeispiel wird die GetRolesForUser Methode verwendet, um eine Liste der Rollen für einen bestimmten Benutzer abzurufen und die Liste der Rollen an ein GridView Steuerelement zu binden. Ein Beispiel für eine Web.config Datei, die die Rollenverwaltung ermöglicht, finden Sie unter WindowsTokenRoleProvider.

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

Hinweise

Diese Methode wird von der klasse Roles aufgerufen, um aus dem 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 angegeben. Wenn der im username Parameter angegebene Wert nicht der Name des aktuell angemeldeten Benutzers ist, wird ein System.Configuration.Provider.ProviderException Fehler ausgelöst.

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

Gilt für:

Weitere Informationen