Udostępnij za pośrednictwem


AuthorizationStoreRoleProvider.DeleteRole(String, Boolean) Metoda

Definicja

Usuwa rolę z magazynu zasad menedżera autoryzacji.

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

Parametry

roleName
String

Nazwa roli do usunięcia.

throwOnPopulatedRole
Boolean

Jeśli trueparametr zgłasza wyjątek, jeśli roleName ma co najmniej jednego członka.

Zwraca

true jeśli rola została usunięta; w przeciwnym razie , false.

Wyjątki

roleName to null.

roleName jest pustym ciągiem.

-lub-

roleName zawiera przecinek.

roleName ma co najmniej jednego członka i throwOnPopulatedRole ma wartość true.

-lub-

Nie można odnaleźć skonfigurowanego applicationName .

-lub-

Nie można odnaleźć skonfigurowanego scopeName .

-lub-

Środowisko uruchomieniowe menedżera autoryzacji nie jest zainstalowane na serwerze.

Atrybut connectionStringName odwołuje się do parametrów połączenia z plikiem, który nie istnieje.

Wystąpienie AuthorizationStoreRoleProvider jest skonfigurowane z magazynem zasad opartym na plikach, a dostęp do odczytu do pliku jest niedozwolony na bieżącym poziomie zaufania.

Przykłady

Poniższy przykład usuwa rolę z magazynu zasad menedżera autoryzacji. Aby zapoznać się z przykładem pliku Web.config umożliwiającego zarządzanie rolami, zobacz 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>

Uwagi

Metoda DeleteRole jest wywoływana przez Roles klasę w celu usunięcia roli z magazynu zasad menedżera autoryzacji określonego w pliku konfiguracji aplikacji ASP.NET (Web.config). Po usunięciu roli lista użytkowników skojarzonych z tą rolą jest również usuwana z magazynu zasad. Nie ma to wpływu na informacje o użytkowniku w bazie danych.

Jeśli throwOnPopulatedRole parametr ma truewartość , zostanie zgłoszony wyjątek, a rola nie zostanie usunięta, jeśli rola zidentyfikowana przez roleName parametr ma co najmniej jeden element członkowny. Jeśli throwOnPopulatedRole ma falsewartość , rola zostanie usunięta bez względu na to, czy jest pusta, czy nie.

Dotyczy

Zobacz też