Sdílet prostřednictvím


AuthorizationStoreRoleProvider.DeleteRole(String, Boolean) Metoda

Definice

Odebere roli z úložiště zásad správce autorizace.

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

Název role, která se má odstranit.

throwOnPopulatedRole
Boolean

Pokud true, vyvolá výjimku, pokud roleName má jeden nebo více členů.

Návraty

truepokud byla role odstraněna; v opačném případě . false

Výjimky

roleName je null.

roleName je prázdný řetězec.

-nebo-

roleName obsahuje čárku.

roleName má jednoho nebo více členů a throwOnPopulatedRole je true.

-nebo-

Nakonfigurovaná applicationName hodnota nebyla nalezena.

-nebo-

Nakonfigurovaná scopeName hodnota nebyla nalezena.

-nebo-

Modul runtime authorization-manager není na serveru nainstalovaný.

Atribut connectionStringName odkazuje na připojovací řetězec na soubor, který neexistuje.

Instance AuthorizationStoreRoleProvider je nakonfigurovaná s úložištěm zásad založeným na souborech a na aktuální úrovni důvěryhodnosti není povolený přístup pro čtení k souboru.

Příklady

Následující příklad odstraní roli z úložiště zásad správce autorizace. Příklad souboru Web.config, který umožňuje správu rolí, najdete v tématu 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>

Poznámky

Metoda DeleteRole je volána Roles třídou k odstranění role z úložiště zásad správce autorizace zadaného v konfiguračním souboru aplikace ASP.NET (Web.config). Při odstranění role se z úložiště zásad odstraní také seznam uživatelů přidružených k této roli. Informace o uživateli v databázi nejsou ovlivněny.

Pokud throwOnPopulatedRole je true, vyvolá se výjimka a role se neodstraní, pokud má role identifikovaná parametrem roleName jeden nebo více členů. Pokud throwOnPopulatedRole je false, pak se role odstraní bez ohledu na to, jestli je prázdná nebo ne.

Platí pro

Viz také