RoleProvider.DeleteRole(String, Boolean) Methode

Definitie

Hiermee verwijdert u een rol uit de gegevensbron voor de geconfigureerde 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

Parameters

roleName
String

De naam van de te verwijderen rol.

throwOnPopulatedRole
Boolean

Als trueu een uitzondering genereert als roleName er een of meer leden zijn en niet verwijderen roleName.

Retouren

true als de rol is verwijderd; anders, false.

Voorbeelden

In het volgende codevoorbeeld ziet u een voorbeeld van de implementatie van de DeleteRole methode.

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

Opmerkingen

DeleteRole wordt aangeroepen door de DeleteRole en de DeleteRole methoden van de Roles klasse om de opgegeven rol te verwijderen uit de gegevensbron voor de geconfigureerde ApplicationName.

Wanneer u een rol verwijdert uit de gegevensbron, moet u ervoor zorgen dat u ook koppelingen verwijdert tussen een gebruikersnaam en de verwijderde rol voor de geconfigureerde applicationName.

Als throwOnPopulatedRole dat het is true, en de rol die is geïdentificeerd door de roleName parameter een of meer leden heeft, genereert u een ProviderException en verwijdert u de rol niet. Als throwOnPopulatedRole dat het is false, verwijdert u de rol of deze leeg is of niet.

Als de opgegeven rolnaam niet bestaat, is nullof een lege tekenreeks is, raden we aan dat uw provider een uitzondering genereert.

Van toepassing op

Zie ook