RoleProvider.DeleteRole(String, Boolean) 메서드
정의
중요
일부 정보는 릴리스되기 전에 상당 부분 수정될 수 있는 시험판 제품과 관련이 있습니다. Microsoft는 여기에 제공된 정보에 대해 어떠한 명시적이거나 묵시적인 보증도 하지 않습니다.
구성된 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
매개 변수
- roleName
- String
삭제할 역할의 이름입니다.
- throwOnPopulatedRole
- Boolean
true
이면 roleName
에 하나 이상의 멤버가 있을 때 예외를 throw하고 roleName
을 삭제하지 않습니다.
반환
역할을 삭제했으면 true
이고, 그러지 않으면 false
입니다.
예제
다음 코드 예제는 메서드의 샘플 구현을 DeleteRole 보여줍니다.
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
설명
DeleteRole는 및 DeleteRole 클래스의 Roles 메서드에 의해 DeleteRole 호출되어 구성된 ApplicationName에 대한 데이터 원본에서 지정된 역할을 삭제합니다.
데이터 원본에서 역할을 삭제하는 경우 구성된 applicationName
에 대한 사용자 이름과 삭제된 역할 간의 연결도 삭제해야 합니다.
가 true
이고 매개 변수로 식별된 역할에 하나 이상의 멤버가 roleName
있는 경우 throwOnPopulatedRole
을 ProviderException throw하고 역할을 삭제하지 않습니다. 이 이false
면 throwOnPopulatedRole
비어 있는지 여부에 관계없이 역할을 삭제합니다.
지정된 역할 이름이 없거나 가 null
이거나 빈 문자열인 경우 공급자가 예외를 throw하는 것이 좋습니다.
적용 대상
추가 정보
.NET