Udostępnij za pośrednictwem


RoleProvider.DeleteRole(String, Boolean) Metoda

Definicja

Usuwa rolę ze źródła danych skonfigurowanego applicationNameelementu .

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

Nazwa roli do usunięcia.

throwOnPopulatedRole
Boolean

W przypadku true, należy zgłosić wyjątek, jeśli roleName ma co najmniej jednego członka i nie usuwaj roleNameelementu .

Zwraca

true jeśli rola została pomyślnie usunięta; w przeciwnym razie , false.

Przykłady

Poniższy przykład kodu przedstawia przykładową implementację 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

Uwagi

DeleteRolemetoda jest wywoływana przez metodę DeleteRoleRoles i DeleteRole klasy w celu usunięcia określonej roli ze źródła danych skonfigurowanego ApplicationNameelementu .

Po usunięciu roli ze źródła danych upewnij się, że wszystkie skojarzenia między nazwą użytkownika a usuniętą rolą skonfigurowanego applicationNameelementu są usuwane.

Jeśli throwOnPopulatedRole jest to true, a rola zidentyfikowana przez roleName parametr ma co najmniej jeden element członkowny, zgłaszaj ProviderException i nie usuwaj roli. Jeśli throwOnPopulatedRole jest to false, usuń rolę, czy jest pusta, czy nie.

Jeśli określona nazwa roli nie istnieje, to null, lub jest pustym ciągiem, zalecamy, aby dostawca zgłosił wyjątek.

Dotyczy

Zobacz też