Sdílet prostřednictvím


RoleProvider.DeleteRole(String, Boolean) Metoda

Definice

Odebere roli ze zdroje dat pro nakonfigurovaný applicationNameobjekt .

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

Parametry

roleName
String

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

throwOnPopulatedRole
Boolean

Pokud true, vyvolejte výjimku, pokud roleName má jeden nebo více členů, a neodstraňovat roleName.

Návraty

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

Příklady

Následující příklad kódu ukazuje ukázkovou implementaci DeleteRole metody .

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

Poznámky

DeleteRoleje volána metodami DeleteRoleRoles a DeleteRole třídy k odstranění zadané role ze zdroje dat pro konfigurovaný ApplicationName.

Při odstraňování role ze zdroje dat nezapomeňte odstranit také všechna přidružení mezi uživatelským jménem a odstraněnou rolí pro nakonfigurovanou applicationName.

Pokud throwOnPopulatedRole je truehodnota a role identifikovaná parametrem roleName má jeden nebo více členů, vyvolejte ProviderException a neodstraňovat roli. Pokud throwOnPopulatedRole je false, odstraňte roli bez ohledu na to, jestli je prázdná nebo ne.

Pokud zadaný název role neexistuje, je nullnebo je prázdný řetězec, doporučujeme, aby váš zprostředkovatel vyvolal výjimku.

Platí pro

Viz také