RoleProvider.DeleteRole(String, Boolean) Método
Definición
Importante
Parte de la información hace referencia a la versión preliminar del producto, que puede haberse modificado sustancialmente antes de lanzar la versión definitiva. Microsoft no otorga ninguna garantía, explícita o implícita, con respecto a la información proporcionada aquí.
Quita un rol del origen de datos para el valor de applicationName
configurado.
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
Parámetros
- roleName
- String
Nombre del rol que se va a eliminar.
- throwOnPopulatedRole
- Boolean
Si true
, se produce una excepción si roleName
tiene uno o más miembros y no elimina roleName
.
Devoluciones
true
si el rol se eliminó correctamente; de lo contrario, false
.
Ejemplos
En el ejemplo de código siguiente se muestra una implementación de ejemplo del DeleteRole método .
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
Comentarios
DeleteRole llama a los DeleteRole métodos y DeleteRole de la Roles clase para eliminar el rol especificado del origen de datos para el configurado ApplicationName.
Al eliminar un rol del origen de datos, asegúrese de eliminar también las asociaciones entre un nombre de usuario y el rol eliminado para el configurado applicationName
.
Si throwOnPopulatedRole
es true
y el rol identificado por el roleName
parámetro tiene uno o varios miembros, inicie y ProviderException no elimine el rol. Si throwOnPopulatedRole
es false
, elimine el rol si está vacío o no.
Si el nombre de rol especificado no existe, es null
o es una cadena vacía, se recomienda que el proveedor produzca una excepción.