RoleProvider.DeleteRole(String, Boolean) Methode

Definition

Entfernt eine Rolle aus der Datenquelle für die konfigurierte applicationName.

public:
 abstract bool DeleteRole(System::String ^ roleName, bool throwOnPopulatedRole);
public abstract bool DeleteRole (string roleName, bool throwOnPopulatedRole);
abstract member DeleteRole : string * bool -> bool
Public MustOverride 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 mindestens einen Member verfügt, wird eine Ausnahme ausgelöst, und roleName wird nicht gelöscht.

Gibt zurück

Boolean

true, wenn die Rolle erfolgreich gelöscht wurde, andernfalls false.

Beispiele

Im folgenden Codebeispiel wird eine Beispielimplementierung der DeleteRole Methode gezeigt.

public override bool DeleteRole(string rolename, bool throwOnPopulatedRole)
{
  if (!RoleExists(rolename))
  {
    throw new ProviderException("Role does not exist.");
  }

  if (throwOnPopulatedRole && GetUsersInRole(rolename).Length > 0)
  {
    throw new ProviderException("Cannot delete a populated role.");
  }

  OdbcConnection conn = new OdbcConnection(connectionString);
  OdbcCommand cmd = new OdbcCommand("DELETE FROM Roles "  +
                                    " WHERE Rolename = ? AND ApplicationName = ?", conn);

  cmd.Parameters.Add("@Rolename", OdbcType.VarChar, 255).Value = rolename;
  cmd.Parameters.Add("@ApplicationName", OdbcType.VarChar, 255).Value = ApplicationName;

  OdbcCommand cmd2 = new OdbcCommand("DELETE FROM UsersInRoles "  +
                                     " WHERE Rolename = ? AND ApplicationName = ?", conn);

  cmd2.Parameters.Add("@Rolename", OdbcType.VarChar, 255).Value = rolename;
  cmd2.Parameters.Add("@ApplicationName", OdbcType.VarChar, 255).Value = ApplicationName;

  try
  {
    conn.Open();

    cmd2.ExecuteNonQuery();
    cmd.ExecuteNonQuery();
  }
  catch (OdbcException)
  {
    // Handle exception.

    return false;
  }
  finally
  {
    conn.Close();      
  }

  return true;
}
Public Overrides Function DeleteRole(ByVal rolename As String, ByVal throwOnPopulatedRole As Boolean) As Boolean
    If Not RoleExists(rolename) Then
        Throw New ProviderException("Role does not exist.")
    End If

    If throwOnPopulatedRole AndAlso GetUsersInRole(rolename).Length > 0 Then
        Throw New ProviderException("Cannot delete a populated role.")
    End If

    Dim conn As OdbcConnection = New OdbcConnection(connectionString)
    Dim cmd As OdbcCommand = New OdbcCommand("DELETE FROM Roles " & _
                                             " WHERE Rolename = ? AND ApplicationName = ?", conn)

    cmd.Parameters.Add("@Rolename", OdbcType.VarChar, 255).Value = rolename
    cmd.Parameters.Add("@ApplicationName", OdbcType.VarChar, 255).Value = ApplicationName

    Dim cmd2 As OdbcCommand = New OdbcCommand("DELETE FROM UsersInRoles " & _
                                              " WHERE Rolename = ? AND ApplicationName = ?", conn)

    cmd2.Parameters.Add("@Rolename", OdbcType.VarChar, 255).Value = rolename
    cmd2.Parameters.Add("@ApplicationName", OdbcType.VarChar, 255).Value = ApplicationName

    Try
        conn.Open()

        cmd2.ExecuteNonQuery()
        cmd.ExecuteNonQuery()
    Catch e As OdbcException
        ' Handle exception.

        Return False
    Finally
        conn.Close()
    End Try

    Return True
End Function

Hinweise

DeleteRole wird von DeleteRole DeleteRole den Methoden Roles der Klasse aufgerufen, um die angegebene Rolle aus der Datenquelle für die konfigurierte ApplicationNameDatei zu löschen.

Wenn Sie eine Rolle aus der Datenquelle löschen, stellen Sie sicher, dass Sie auch alle Zuordnungen zwischen einem Benutzernamen und der gelöschten Rolle für die konfigurierte applicationNameRolle löschen.

trueWenn throwOnPopulatedRole es sich um eine oder mehrere Elemente handelt, und die rolle, die vom roleName Parameter identifiziert wird, wird eine ProviderException Rolle ausgelöst und nicht gelöscht. falseWenn throwOnPopulatedRole es sich um die Rolle handelt, löschen Sie die Rolle, ob sie leer ist oder nicht.

Wenn der angegebene Rollenname nicht vorhanden ist, oder eine leere Zeichenfolge ist null, empfehlen wir, dass Ihr Anbieter eine Ausnahme ausgelöst hat.

Gilt für

Siehe auch