AuthorizationStoreRoleProvider.DeleteRole(String, Boolean) 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.
Entfernt eine Rolle aus dem Autorisierungsmanager-Richtlinienspeicher.
public:
override bool DeleteRole(System::String ^ roleName, bool throwOnPopulatedRole);
public override bool DeleteRole (string roleName, bool throwOnPopulatedRole);
override this.DeleteRole : string * bool -> bool
Public Overrides Function DeleteRole (roleName As String, throwOnPopulatedRole As Boolean) As Boolean
Parameter
- roleName
- String
Der Name der zu löschenden Rolle.
- throwOnPopulatedRole
- Boolean
Wenn der Wert true
ist und roleName
über einen oder mehrere Mitglieder verfügt, wird eine Ausnahme ausgelöst.
Gibt zurück
true
, wenn die Rolle gelöscht wurde, andernfalls false
.
Ausnahmen
roleName
ist null
.
roleName
verfügt über mindestens ein Mitglied, und throwOnPopulatedRole
ist true
.
- oder -
Der konfigurierte applicationName
wurde nicht gefunden.
- oder -
Der konfigurierte scopeName
wurde nicht gefunden.
- oder -
Die Laufzeit für Autorisierungs-Manager ist auf dem Server nicht installiert.
Das connectionStringName
-Attribut verweist auf eine Verbindungszeichenfolge zu einer nicht vorhandenen Datei.
Die AuthorizationStoreRoleProvider-Instanz wird mit einem dateibasierten Richtlinienspeicher konfiguriert, und auf der aktuellen Vertrauensebene ist kein Lesezugriff auf die Datei möglich.
Beispiele
Im folgenden Beispiel wird eine Rolle aus dem Autorisierungs-Manager-Richtlinienspeicher gelöscht. Ein Beispiel für eine Web.config-Datei, die die Rollenverwaltung aktiviert, finden Sie unter AuthorizationStoreRoleProvider.
<%@ 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(object sender, EventArgs args)
{
if (!IsPostBack)
{
// Bind roles to ListBox.
rolesArray = Roles.GetAllRoles();
RolesListBox.DataSource = rolesArray;
RolesListBox.DataBind();
}
}
public void DeleteRole_OnClick(object sender, EventArgs args)
{
string delRole = "";
try
{
delRole = RolesListBox.SelectedItem.Value;
Roles.DeleteRole(delRole);
Msg.Text = "Role '" + Server.HtmlEncode(delRole) + "' deleted.";
// Re-bind roles to ListBox.
rolesArray = Roles.GetAllRoles();
RolesListBox.DataSource = rolesArray;
RolesListBox.DataBind();
}
catch
{
Msg.Text = "Role '" + Server.HtmlEncode(delRole) + "' <u>not</u> deleted.";
}
}
</script>
<html xmlns="http://www.w3.org/1999/xhtml" >
<head>
<title>Sample: Delete Role</title>
</head>
<body>
<form runat="server" id="PageForm">
<h3>
Delete Role</h3>
<asp:Label ID="Msg" ForeColor="maroon" runat="server" /><br />
<table border="0">
<tr>
<td valign="top">
Delete Role:</td>
<td valign="top">
<asp:ListBox ID="RolesListBox" runat="server" Rows="8" /></td>
<td valign="top">
<asp:Button Text="Delete Role" ID="DeleteRoleButton" runat="server" OnClick="DeleteRole_OnClick" /></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(ByVal sender As Object, ByVal args As EventArgs)
If Not IsPostBack Then
' Bind roles to ListBox.
rolesArray = Roles.GetAllRoles()
RolesListBox.DataSource = rolesArray
RolesListBox.DataBind()
End If
End Sub
Public Sub DeleteRole_OnClick(ByVal sender As Object, ByVal args As EventArgs)
Dim delRole As String
Try
delRole = RolesListBox.SelectedItem.Value
Roles.DeleteRole(delRole)
Msg.Text = "Role '" & Server.HtmlEncode(delRole) & "' deleted."
' Re-bind roles to ListBox.
rolesArray = Roles.GetAllRoles()
RolesListBox.DataSource = rolesArray
RolesListBox.DataBind()
Catch
Msg.Text = "Role '" & Server.HtmlEncode(delRole) & "' <u>not</u> deleted."
End Try
End Sub
</script>
<html xmlns="http://www.w3.org/1999/xhtml" >
<head>
<title>Sample: Delete Role</title>
</head>
<body>
<form runat="server" id="PageForm">
<h3>
Delete Role</h3>
<asp:Label ID="Msg" ForeColor="maroon" runat="server" /><br />
<table border="0">
<tr>
<td valign="top">
Delete Role:</td>
<td valign="top">
<asp:ListBox ID="RolesListBox" runat="server" Rows="8" /></td>
<td valign="top">
<asp:Button Text="Delete Role" ID="DeleteRoleButton" runat="server" OnClick="DeleteRole_OnClick" /></td>
</tr>
</table>
</form>
</body>
</html>
Hinweise
Die DeleteRole -Methode wird von der Roles -Klasse aufgerufen, um eine Rolle aus dem Autorisierungs-Manager-Richtlinienspeicher zu löschen, der in der Konfigurationsdatei der ASP.NET Anwendung (Web.config) angegeben ist. Wenn eine Rolle gelöscht wird, wird auch die Liste der Benutzer, die dieser Rolle zugeordnet sind, aus dem Richtlinienspeicher gelöscht. Die Benutzerinformationen in der Datenbank sind nicht betroffen.
Wenn throwOnPopulatedRole
ist true
, wird eine Ausnahme ausgelöst, und die Rolle wird nicht gelöscht, wenn die durch den roleName
Parameter identifizierte Rolle über mindestens ein Element verfügt. Wenn throwOnPopulatedRole
ist false
, wird die Rolle gelöscht, unabhängig davon, ob sie leer ist oder nicht.