WindowsTokenRoleProvider.IsUserInRole 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 einen Wert ab, der angibt, ob sich der angegebene Benutzer in der angegebenen integrierten Windows-Rolle befindet.
Überlädt
| Name | Beschreibung |
|---|---|
| IsUserInRole(String, WindowsBuiltInRole) |
Ruft einen Wert ab, der angibt, ob sich der angegebene Benutzer in der angegebenen integrierten Windows-Rolle befindet. |
| IsUserInRole(String, String) |
Ruft einen Wert ab, der angibt, ob sich der angegebene Benutzer in der angegebenen Windows-Gruppe befindet. |
IsUserInRole(String, WindowsBuiltInRole)
Ruft einen Wert ab, der angibt, ob sich der angegebene Benutzer in der angegebenen integrierten Windows-Rolle befindet.
public:
bool IsUserInRole(System::String ^ username, System::Security::Principal::WindowsBuiltInRole role);
public bool IsUserInRole(string username, System.Security.Principal.WindowsBuiltInRole role);
override this.IsUserInRole : string * System.Security.Principal.WindowsBuiltInRole -> bool
Public Function IsUserInRole (username As String, role As WindowsBuiltInRole) As Boolean
Parameter
- username
- String
Der Benutzername, nach dem im Formular DOMÄNE\Benutzername gesucht werden soll.
- role
- WindowsBuiltInRole
Die Windows-Rolle, in der gesucht werden soll.
Gibt zurück
truewenn sich der angegebene Benutzer in der angegebenen Windows-Rolle befindet; andernfalls . false
Ausnahmen
username ist null.
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.
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 ermöglicht, finden Sie unter WindowsTokenRoleProvider.
<%@ 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>
<%@ 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 = ""
Dim provider As WindowsTokenRoleProvider = CType(Roles.Provider, WindowsTokenRoleProvider)
If Not provider.IsUserInRole(User.Identity.Name, _
System.Security.Principal.WindowsBuiltInRole.Administrator) Then
Msg.Text = "You are not authorized to view user roles."
Return
End If
' Bind roles to GridView.
Try
rolesArray = Roles.GetRolesForUser(User.Identity.Name)
Catch e As HttpException
Msg.Text = "There is no current logged on user. Role membership cannot be verified."
Return
End Try
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
Mit der IsUserInRole Methode können Sie überprüfen, ob sich ein Benutzer in einer der gängigen Windows-Rollen befindet, die von der 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 aufgerufen 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 Fehler ausgelöst.
IsUserInRole die Methode kann nur für den aktuell angemeldeten Benutzer aufgerufen werden, der von der servervariablen LOGON_USER identifiziert wird. Der aktuelle angemeldete Benutzer muss ein authentifizierter Windows-Benutzer sein. Weitere Informationen zur ASP.NET- und Windows-Authentifizierung finden Sie unter ASP.NET Authentifizierung.
Weitere Informationen
Gilt für:
IsUserInRole(String, String)
Ruft einen Wert ab, der angibt, ob sich der angegebene Benutzer in der angegebenen Windows-Gruppe befindet.
public:
override bool IsUserInRole(System::String ^ username, System::String ^ roleName);
public override bool IsUserInRole(string username, string roleName);
override this.IsUserInRole : string * string -> bool
Public Overrides Function IsUserInRole (username As String, roleName As String) As Boolean
Parameter
- username
- String
Der Benutzername, nach dem im Formular DOMÄNE\Benutzername gesucht werden soll.
- roleName
- String
Die Windows-Gruppe, die im Formular DOMÄNE\rolename durchsucht werden soll.
Gibt zurück
truewenn sich der angegebene Benutzername in der angegebenen Windows-Gruppe befindet; andernfalls . false
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.
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 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
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 aktuelle angemeldete Benutzer muss ein authentifizierter Windows-Benutzer sein. Weitere Informationen zur ASP.NET- und Windows-Authentifizierung finden Sie unter ASP.NET Authentifizierung.