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하지 않는 경우 roleNameroleName 예외를 throw합니다.
반품
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는 클래스의 DeleteRoleDeleteRole 메서드와 Roles 함께 호출되어 구성된 ApplicationName데이터 원본에서 지정된 역할을 삭제합니다.
데이터 원본에서 역할을 삭제하는 경우 구성된 applicationName사용자 이름과 삭제된 역할 간의 연결도 삭제해야 합니다.
이 throwOnPopulatedRole경우 매개 변수로 true 식별되는 역할에 하나 이상의 멤버가 있는 경우 roleName 역할을 ProviderException throw하고 역할을 삭제하지 마세요. 이 throwOnPopulatedRole경우 false 비어 있는지 여부에 관계없이 역할을 삭제합니다.
지정된 역할 이름이 없거나 빈 null문자열인 경우 공급자가 예외를 throw하는 것이 좋습니다.