Roles.GetRolesForUser 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 Rollen ab, die ein Benutzer innehat.
Überlädt
GetRolesForUser() |
Ruft eine Liste der Rollen des gegenwärtig angemeldeten Benutzers ab. |
GetRolesForUser(String) |
Ruft eine Liste der Rollen ab, die ein Benutzer innehat. |
GetRolesForUser()
Ruft eine Liste der Rollen des gegenwärtig angemeldeten Benutzers ab.
public:
static cli::array <System::String ^> ^ GetRolesForUser();
public static string[] GetRolesForUser ();
static member GetRolesForUser : unit -> string[]
Public Shared Function GetRolesForUser () As String()
Gibt zurück
Ein Zeichenfolgenarray, das die Namen aller Rollen des gegenwärtig angemeldeten Benutzers enthält.
Ausnahmen
Gegenwärtig ist kein Benutzer angemeldet.
Rollenverwaltung ist nicht aktiviert.
Beispiele
Im folgenden Codebeispiel wird die GetRolesForUser -Methode verwendet, um eine Liste von Rollen für einen angegebenen Benutzer abzurufen und die zurückgegebenen Rollen an ein System.Web.UI.WebControls.GridView Steuerelement zu binden. Ein Beispiel für eine Web.config-Datei, die die Rollenverwaltung ermöglicht, finden Sie unter Roles.
<%@ 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()
{
if (!IsPostBack)
{
// Bind roles to GridView.
try
{
rolesArray = Roles.GetRolesForUser();
}
catch (HttpException e)
{
Msg.Text = "There is no current logged on user. Role information cannot be retrieved.";
return;
}
UserRolesGrid.Columns[0].HeaderText = "Roles for " + User.Identity.Name;
UserRolesGrid.DataSource = rolesArray;
UserRolesGrid.DataBind();
}
}
</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()
If Not IsPostBack Then
' Bind roles to GridView.
Try
rolesArray = Roles.GetRolesForUser()
Catch e As HttpException
Msg.Text = "There is no current logged on user. Role information cannot be retrieved."
Return
End Try
UserRolesGrid.Columns(0).HeaderText = "Roles for " & User.Identity.Name
UserRolesGrid.DataSource = rolesArray
UserRolesGrid.DataBind()
End If
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
Die GetRolesForUser -Methode ruft die RoleProvider.GetRolesForUser -Methode des Standardrollenanbieters auf, um aus der Datenquelle die Rollen abzurufen, in denen sich der aktuell angemeldete Benutzer befindet. Der aktuell angemeldete Benutzer wird durch die HttpContext.User -Eigenschaft des aktuellen System.Web.HttpContextoder für Thread.CurrentPrincipal Nicht-HTTP-Hostingumgebungen durch identifiziert. Wenn kein Benutzer angemeldet ist, wird eine Ausnahme ausgelöst. Es werden nur die Rollen für die Anwendung abgerufen, die in der ApplicationName -Eigenschaft angegeben ist.
Wenn CacheRolesInCookie ist true
, können die Ergebnisse der GetRolesForUser -Methode vom Rollencache und nicht vom angegebenen Rollenanbieter zurückgegeben werden.
Weitere Informationen
Gilt für:
GetRolesForUser(String)
Ruft eine Liste der Rollen ab, die ein Benutzer innehat.
public:
static cli::array <System::String ^> ^ GetRolesForUser(System::String ^ username);
public static string[] GetRolesForUser (string username);
static member GetRolesForUser : string -> string[]
Public Shared Function GetRolesForUser (username As String) As String()
Parameter
- username
- String
Der Benutzer, für den eine Liste der Rollen zurückgegeben werden soll.
Gibt zurück
Ein Zeichenfolgenarray, das die Namen aller Rollen des angegebenen Benutzers enthält.
Ausnahmen
username
ist null
.
username
enthält ein Komma (,).
Rollenverwaltung ist nicht aktiviert.
Beispiele
Im folgenden Codebeispiel wird die GetRolesForUser -Methode verwendet, um eine Liste von Rollen für einen angegebenen Benutzer abzurufen und die zurückgegebenen Rollen an ein System.Web.UI.WebControls.GridView Steuerelement zu binden. Ein Beispiel für eine Web.config-Datei, die die Rollenverwaltung ermöglicht, finden Sie unter Roles.
<%@ 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()
{
if (!IsPostBack)
{
// Bind roles to GridView.
try
{
rolesArray = Roles.GetRolesForUser();
}
catch (HttpException e)
{
Msg.Text = "There is no current logged on user. Role information cannot be retrieved.";
return;
}
UserRolesGrid.Columns[0].HeaderText = "Roles for " + User.Identity.Name;
UserRolesGrid.DataSource = rolesArray;
UserRolesGrid.DataBind();
}
}
</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()
If Not IsPostBack Then
' Bind roles to GridView.
Try
rolesArray = Roles.GetRolesForUser()
Catch e As HttpException
Msg.Text = "There is no current logged on user. Role information cannot be retrieved."
Return
End Try
UserRolesGrid.Columns(0).HeaderText = "Roles for " & User.Identity.Name
UserRolesGrid.DataSource = rolesArray
UserRolesGrid.DataBind()
End If
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
Die GetRolesForUser -Methode ruft die RoleProvider.GetRolesForUser -Methode des Standardrollenanbieters auf, um aus der Datenquelle die Rollen abzurufen, in denen sich der Benutzer befindet. Es werden nur die Rollen für die Anwendung abgerufen, die in der ApplicationName -Eigenschaft angegeben ist.
Wenn username
gleich dem aktuellen angemeldeten Benutzer ist und CacheRolesInCookie gleich ist true
, können die Ergebnisse der GetRolesForUser -Methode aus dem Rollencache und nicht vom angegebenen Providerzurückgegeben werden.