Partage via


RoleProvider.DeleteRole(String, Boolean) Méthode

Définition

Supprime un rôle de la source de données pour le applicationName configuré.

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

Paramètres

roleName
String

Nom du rôle à supprimer.

throwOnPopulatedRole
Boolean

Si la valeur est roleName, lève une exception si true possède au moins un membre et ne supprime pas roleName.

Retours

true si le rôle a été supprimé avec succès ; sinon, false.

Exemples

L’exemple de code suivant montre un exemple d’implémentation de la DeleteRole méthode .

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

Remarques

DeleteRole est appelé par les DeleteRoleDeleteRole méthodes et de la Roles classe pour supprimer le rôle spécifié de la source de données pour le configuré ApplicationName.

Lorsque vous supprimez un rôle de la source de données, veillez à supprimer également toutes les associations entre un nom d’utilisateur et le rôle supprimé pour le configuré applicationName.

Si throwOnPopulatedRole a la valeur trueet que le rôle identifié par le roleName paramètre a un ou plusieurs membres, lèvez un ProviderException et ne supprimez pas le rôle. Si throwOnPopulatedRole a la valeur false, supprimez le rôle, qu’il soit vide ou non.

Si le nom de rôle spécifié n’existe pas, est nullou est une chaîne vide, nous vous recommandons de lever une exception.

S’applique à

Voir aussi