Freigeben über


AuthorizationStoreRoleProvider.DeleteRole(String, Boolean) Methode

Definition

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 ist eine leere Zeichenfolge.

- oder -

roleName enthält ein Komma.

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.

Gilt für:

Weitere Informationen