Поделиться через


AuthorizationStoreRoleProvider.DeleteRole(String, Boolean) Метод

Определение

Удаляет роль из хранилища политик диспетчера авторизации.

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

Параметры

roleName
String

Имя удаляемой роли.

throwOnPopulatedRole
Boolean

Если true, вызывается исключение, если roleName имеет один или несколько членов.

Возвращаемое значение

Значение true, если роль была удалена; в противном случае — значение false.

Исключения

roleName имеет значение null.

Параметр roleName равен пустой строке.

-или-

Параметр roleName содержит запятую.

Параметр roleName имеет один или несколько членов, и параметр throwOnPopulatedRole имеет значение true.

-или-

Настроенное applicationName не найдено.

-или-

Настроенное scopeName не найдено.

-или-

Исполняющая среда диспетчера авторизации не установлена на сервере.

Атрибут connectionStringName содержит ссылку на строку подключения к несуществующему файлу.

Экземпляр AuthorizationStoreRoleProvider настроен для использования файлового хранилища политик, и на текущем уровне доверия доступ для чтения к этому файлу запрещен.

Примеры

В следующем примере удаляется роль из хранилища политик диспетчера авторизации. Пример файла Web.config, который позволяет управлять ролями, см. в разделе 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>

Комментарии

Метод DeleteRole вызывается классом Roles для удаления роли из хранилища политик диспетчера авторизации, указанного в файле конфигурации приложения ASP.NET (Web.config). При удалении роли список пользователей, связанных с этой ролью, также удаляется из хранилища политик. Сведения о пользователе в базе данных не затрагиваются.

Если throwOnPopulatedRole имеет значение true, создается исключение, и роль не будет удалена, если роль, определяемая параметром roleName , имеет один или несколько членов. Если throwOnPopulatedRole имеет значение false, роль будет удалена независимо от того, является ли она пустой или нет.

Применяется к

См. также раздел