WindowsTokenRoleProvider.GetRolesForUser(String) Methode
Definition
Wichtig
Einige Informationen beziehen sich auf Vorabversionen, die vor dem Release ggf. grundlegend überarbeitet werden. Microsoft übernimmt hinsichtlich der hier bereitgestellten Informationen keine Gewährleistungen, seien sie ausdrücklich oder konkludent.
Ruft eine Liste der Windows-Gruppen ab, denen ein Benutzer angehört.
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, für den die Liste der Windowsgruppen im Format DOMAIN\Benutzername zurückgegeben werden soll.
Gibt zurück
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.
<%@ 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 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.