RoleProvider.DeleteRole(String, Boolean) Methode
Definition
Wichtig
Einige Informationen beziehen sich auf Vorabversionen, die vor dem Release ggf. grundlegend überarbeitet werden. Microsoft übernimmt hinsichtlich der hier bereitgestellten Informationen keine Gewährleistungen, seien sie ausdrücklich oder konkludent.
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
true
, wenn die Rolle erfolgreich gelöscht wurde, andernfalls false
.
Beispiele
Das folgende Codebeispiel zeigt eine Beispielimplementierung der 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
Hinweise
DeleteRole wird von den DeleteRole - und - DeleteRole Methoden der Roles -Klasse aufgerufen, um die angegebene Rolle aus der Datenquelle für die konfigurierte ApplicationNamezu 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 den konfigurierten applicationName
löschen.
Wenn throwOnPopulatedRole
der Wert ist true
und die durch den roleName
Parameter identifizierte Rolle mindestens ein Element aufweist, lösen Sie ein aus ProviderException , und löschen Sie die Rolle nicht. Wenn throwOnPopulatedRole
ist false
, löschen Sie die Rolle, unabhängig davon, ob sie leer ist oder nicht.
Wenn der angegebene Rollenname nicht vorhanden ist, oder eine leere Zeichenfolge ist null
, wird empfohlen, dass Ihr Anbieter eine Ausnahme auslöst.