diff --git a/alfa-client/libs/admin/user/src/lib/user-form/user-form-delete-button/user-form-delete-button.component.html b/alfa-client/libs/admin/user/src/lib/user-form/user-form-delete-button/user-form-delete-button.component.html
index 54add448551525bd2ece9b4c74c838430b68972b..e180bccebc7c5139936430630b94d8b40fbe4f21 100644
--- a/alfa-client/libs/admin/user/src/lib/user-form/user-form-delete-button/user-form-delete-button.component.html
+++ b/alfa-client/libs/admin/user/src/lib/user-form/user-form-delete-button/user-form-delete-button.component.html
@@ -1,5 +1,5 @@
 <ods-button-with-spinner
-  (clickEmitter)="delete()"
+  (clickEmitter)="openDeleteDialog()"
   variant="outline"
   text="Löschen"
   dataTestId="delete-button"
diff --git a/alfa-client/libs/admin/user/src/lib/user-form/user-form-delete-button/user-form-delete-button.component.spec.ts b/alfa-client/libs/admin/user/src/lib/user-form/user-form-delete-button/user-form-delete-button.component.spec.ts
index 71daffb081b873e23d68a0fa5adf96239da4a6c9..cc2b06b8107649c5e49586a99ce3a8d14cf7252f 100644
--- a/alfa-client/libs/admin/user/src/lib/user-form/user-form-delete-button/user-form-delete-button.component.spec.ts
+++ b/alfa-client/libs/admin/user/src/lib/user-form/user-form-delete-button/user-form-delete-button.component.spec.ts
@@ -5,7 +5,7 @@ import { DialogService } from '@alfa-client/ui';
 import { ButtonWithSpinnerComponent } from '@ods/component';
 import { MockComponent } from 'ng-mocks';
 import { getDataTestIdAttributeOf } from '../../../../../../tech-shared/test/data-test';
-import { UserFormDeleteDialogComponent } from '../user-form-delete-dialog/user-form-delete-dialog.component';
+import { UserFormDeleteDialogContainerComponent } from '../user-form-delete-dialog-container/user-form-delete-dialog-container.component';
 import { UserFormDeleteButtonComponent } from './user-form-delete-button.component';
 
 describe('UserFormDeleteButtonComponent', () => {
@@ -37,9 +37,9 @@ describe('UserFormDeleteButtonComponent', () => {
   describe('component', () => {
     describe('delete', () => {
       it('should open dialog', () => {
-        component.delete();
+        component.openDeleteDialog();
 
-        expect(dialogService.open).toHaveBeenCalledWith(UserFormDeleteDialogComponent);
+        expect(dialogService.open).toHaveBeenCalledWith(UserFormDeleteDialogContainerComponent);
       });
     });
   });
@@ -50,12 +50,12 @@ describe('UserFormDeleteButtonComponent', () => {
         existsAsHtmlElement(fixture, deleteButton);
       });
 
-      it('should call delete on click', () => {
-        component.delete = jest.fn();
+      it('should open delete dialog on click', () => {
+        component.openDeleteDialog = jest.fn();
 
         dispatchEventFromFixture(fixture, deleteButton, 'clickEmitter');
 
-        expect(component.delete).toHaveBeenCalled();
+        expect(component.openDeleteDialog).toHaveBeenCalled();
       });
     });
   });
diff --git a/alfa-client/libs/admin/user/src/lib/user-form/user-form-delete-button/user-form-delete-button.component.ts b/alfa-client/libs/admin/user/src/lib/user-form/user-form-delete-button/user-form-delete-button.component.ts
index abe8a9be6d38ed1443b8fca282cc1b0f1b6b41d0..7cbef8bf523992dd16a0dd070b3650bdde11ca2e 100644
--- a/alfa-client/libs/admin/user/src/lib/user-form/user-form-delete-button/user-form-delete-button.component.ts
+++ b/alfa-client/libs/admin/user/src/lib/user-form/user-form-delete-button/user-form-delete-button.component.ts
@@ -1,7 +1,7 @@
 import { DialogService } from '@alfa-client/ui';
 import { Component, inject } from '@angular/core';
 import { ButtonWithSpinnerComponent } from '@ods/component';
-import { UserFormDeleteDialogComponent } from '../user-form-delete-dialog/user-form-delete-dialog.component';
+import { UserFormDeleteDialogContainerComponent } from '../user-form-delete-dialog-container/user-form-delete-dialog-container.component';
 
 @Component({
   selector: 'admin-user-form-delete-button',
@@ -12,7 +12,7 @@ import { UserFormDeleteDialogComponent } from '../user-form-delete-dialog/user-f
 export class UserFormDeleteButtonComponent {
   private readonly dialogService = inject(DialogService);
 
-  public delete(): void {
-    this.dialogService.openWidely(UserFormDeleteDialogComponent);
+  public openDeleteDialog(): void {
+    this.dialogService.openWidely(UserFormDeleteDialogContainerComponent);
   }
 }
diff --git a/alfa-client/libs/admin/user/src/lib/user-form/user-form-delete-dialog-container/user-form-delete-dialog-container.component.html b/alfa-client/libs/admin/user/src/lib/user-form/user-form-delete-dialog-container/user-form-delete-dialog-container.component.html
new file mode 100644
index 0000000000000000000000000000000000000000..2e2466e86c47be1080b899ed4d92277eb3cb0263
--- /dev/null
+++ b/alfa-client/libs/admin/user/src/lib/user-form/user-form-delete-dialog-container/user-form-delete-dialog-container.component.html
@@ -0,0 +1,7 @@
+<admin-user-form-delete-dialog
+  [username]="getUsername()"
+  [deleteUserStateResource]="deleteUserStateResource$ | async"
+  (cancel)="closeDeleteDialog()"
+  (delete)="deleteUser()"
+  data-test-id="delete-dialog"
+/>
\ No newline at end of file
diff --git a/alfa-client/libs/admin/user/src/lib/user-form/user-form-delete-dialog-container/user-form-delete-dialog-container.component.spec.ts b/alfa-client/libs/admin/user/src/lib/user-form/user-form-delete-dialog-container/user-form-delete-dialog-container.component.spec.ts
new file mode 100644
index 0000000000000000000000000000000000000000..5a25c702488c11df6a470fb68eb4ac9d139d134f
--- /dev/null
+++ b/alfa-client/libs/admin/user/src/lib/user-form/user-form-delete-dialog-container/user-form-delete-dialog-container.component.spec.ts
@@ -0,0 +1,116 @@
+import { ComponentFixture, TestBed } from '@angular/core/testing';
+
+import { createEmptyStateResource, StateResource } from '@alfa-client/tech-shared';
+import { dispatchEventFromFixture, getMockComponent, Mock, mock } from '@alfa-client/test-utils';
+import { FormControl } from '@angular/forms';
+import { faker } from '@faker-js/faker/locale/de';
+import { of } from 'rxjs';
+import { getDataTestIdOf } from '../../../../../../tech-shared/test/data-test';
+import { createUserFormGroup } from '../../../../test/form';
+import { UserFormService } from '../user.formservice';
+import { UserFormDeleteDialogContainerComponent } from './user-form-delete-dialog-container.component';
+import { UserFormDeleteDialogComponent } from './user-form-delete-dialog/user-form-delete-dialog.component';
+
+describe('UserFormDeleteDialogComponent', () => {
+  let component: UserFormDeleteDialogContainerComponent;
+  let fixture: ComponentFixture<UserFormDeleteDialogContainerComponent>;
+
+  const deletDialogLocator: string = getDataTestIdOf('delete-dialog');
+
+  let formService: Mock<UserFormService>;
+
+  beforeEach(async () => {
+    formService = mock(UserFormService);
+    formService = {
+      ...mock(UserFormService),
+      form: createUserFormGroup(),
+    } as any;
+
+    await TestBed.configureTestingModule({
+      imports: [UserFormDeleteDialogContainerComponent, UserFormDeleteDialogComponent],
+      providers: [{ provide: UserFormService, useValue: formService }],
+    }).compileComponents();
+
+    fixture = TestBed.createComponent(UserFormDeleteDialogContainerComponent);
+    component = fixture.componentInstance;
+    fixture.detectChanges();
+  });
+
+  it('should create', () => {
+    expect(component).toBeTruthy();
+  });
+
+  describe('user form delete dialog', () => {
+    it('should exist', () => {
+      const username: string = faker.word.sample();
+      const state: StateResource<unknown> = createEmptyStateResource();
+      component.getUsername = jest.fn().mockReturnValue(username);
+      component.deleteUserStateResource$ = of(state);
+
+      fixture.detectChanges();
+
+      const deleteDialog: UserFormDeleteDialogComponent = getMockComponent(fixture, UserFormDeleteDialogComponent);
+      expect(deleteDialog).toBeTruthy();
+      expect(deleteDialog.username).toBe(username);
+      expect(deleteDialog.deleteUserStateResource).toBe(state);
+    });
+
+    it('should call closeDeteleDialog on emit cancel', () => {
+      component.closeDeleteDialog = jest.fn();
+
+      dispatchEventFromFixture(fixture, 'admin-user-form-delete-dialog', 'cancel');
+
+      expect(component.closeDeleteDialog).toHaveBeenCalled();
+    });
+
+    it('should call deleteUser on emit delete', () => {
+      component.deleteUser = jest.fn();
+
+      dispatchEventFromFixture(fixture, deletDialogLocator, 'delete');
+
+      expect(component.deleteUser).toHaveBeenCalled();
+    });
+  });
+
+  describe('component', () => {
+    describe('getUsername', () => {
+      it('should return username', () => {
+        const username: string = faker.word.sample();
+        jest.spyOn(formService.form as any, 'get').mockReturnValue(new FormControl(username));
+
+        const result: string = component.getUsername();
+
+        expect(result).toBe(username);
+      });
+    });
+
+    describe('closeDeleteDialog', () => {
+      it('should call dialogService closeAll', () => {
+        component.dialogService.closeAll = jest.fn();
+
+        component.closeDeleteDialog();
+
+        expect(component.dialogService.closeAll).toHaveBeenCalled();
+      });
+    });
+
+    describe('deleteUser', () => {
+      it('should call userFormService delete ', () => {
+        formService.delete = jest.fn();
+
+        component.deleteUser();
+
+        expect(formService.delete).toHaveBeenCalled();
+      });
+
+      it('should set deleteUserState', () => {
+        const state: StateResource<unknown> = createEmptyStateResource();
+        formService.delete = jest.fn().mockReturnValue(state);
+
+        component.deleteUser();
+
+        expect(component.deleteUserStateResource$).toBe(state);
+      });
+    });
+  });
+});
diff --git a/alfa-client/libs/admin/user/src/lib/user-form/user-form-delete-dialog-container/user-form-delete-dialog-container.component.ts b/alfa-client/libs/admin/user/src/lib/user-form/user-form-delete-dialog-container/user-form-delete-dialog-container.component.ts
new file mode 100644
index 0000000000000000000000000000000000000000..b5ff2dc0d480b561a567f4639e876700d0358b26
--- /dev/null
+++ b/alfa-client/libs/admin/user/src/lib/user-form/user-form-delete-dialog-container/user-form-delete-dialog-container.component.ts
@@ -0,0 +1,35 @@
+import { createEmptyStateResource, StateResource } from '@alfa-client/tech-shared';
+import { DialogService } from '@alfa-client/ui';
+import { AsyncPipe } from '@angular/common';
+import { Component, inject } from '@angular/core';
+import { Observable, of } from 'rxjs';
+import { UserFormService } from '../user.formservice';
+import { UserFormDeleteDialogComponent } from './user-form-delete-dialog/user-form-delete-dialog.component';
+
+@Component({
+  selector: 'admin-user-form-delete-dialog-container',
+  standalone: true,
+  imports: [UserFormDeleteDialogComponent, AsyncPipe],
+  templateUrl: './user-form-delete-dialog-container.component.html',
+  providers: [UserFormService],
+})
+export class UserFormDeleteDialogContainerComponent {
+  public readonly formService = inject(UserFormService);
+  public readonly dialogService = inject(DialogService);
+
+  public deleteUserStateResource$: Observable<StateResource<unknown>> = of(createEmptyStateResource());
+
+  protected readonly UserFormService = UserFormService;
+
+  getUsername(): string {
+    return this.formService.form.get(UserFormService.USERNAME).value;
+  }
+
+  public closeDeleteDialog(): void {
+    this.dialogService.closeAll();
+  }
+
+  public deleteUser(): void {
+    this.deleteUserStateResource$ = this.formService.delete();
+  }
+}
diff --git a/alfa-client/libs/admin/user/src/lib/user-form/user-form-delete-dialog-container/user-form-delete-dialog/user-form-delete-dialog.component.html b/alfa-client/libs/admin/user/src/lib/user-form/user-form-delete-dialog-container/user-form-delete-dialog/user-form-delete-dialog.component.html
new file mode 100644
index 0000000000000000000000000000000000000000..b261057d5fabafbec8e598d12dcd0b737dd89676
--- /dev/null
+++ b/alfa-client/libs/admin/user/src/lib/user-form/user-form-delete-dialog-container/user-form-delete-dialog/user-form-delete-dialog.component.html
@@ -0,0 +1,17 @@
+<p>Sind Sie sicher, dass sie {{username}} löschen möchten? Hinweis: Die zugewiesenen Vorgänge bleiben bestehen.</p>
+
+<div class="flex justify-between">
+  <ods-button-with-spinner
+    (clickEmitter)="cancel.emit()"
+    text="Abbrechen"
+    dataTestId="dialog-abbrechen-button"
+  />
+
+  <ods-button-with-spinner
+    [stateResource]="deleteUserStateResource"
+    (clickEmitter)="delete.emit()"
+    variant="outline"
+    text="Löschen"
+    dataTestId="dialog-delete-button"
+  />
+</div>
\ No newline at end of file
diff --git a/alfa-client/libs/admin/user/src/lib/user-form/user-form-delete-dialog-container/user-form-delete-dialog/user-form-delete-dialog.component.spec.ts b/alfa-client/libs/admin/user/src/lib/user-form/user-form-delete-dialog-container/user-form-delete-dialog/user-form-delete-dialog.component.spec.ts
new file mode 100644
index 0000000000000000000000000000000000000000..1ca1f2ad8fff971770c45b30f98b433accfc31f3
--- /dev/null
+++ b/alfa-client/libs/admin/user/src/lib/user-form/user-form-delete-dialog-container/user-form-delete-dialog/user-form-delete-dialog.component.spec.ts
@@ -0,0 +1,65 @@
+import { ComponentFixture, TestBed } from '@angular/core/testing';
+
+import { createEmptyStateResource, StateResource } from '@alfa-client/tech-shared';
+import { dispatchEventFromFixture, existsAsHtmlElement, getDebugElementFromFixtureByCss } from '@alfa-client/test-utils';
+import { ButtonWithSpinnerComponent } from '@ods/component';
+import { getDataTestIdAttributeOf } from '../../../../../../../tech-shared/test/data-test';
+import { UserFormDeleteDialogComponent } from './user-form-delete-dialog.component';
+
+describe('UserFormDeleteDialogComponent', () => {
+  let component: UserFormDeleteDialogComponent;
+  let fixture: ComponentFixture<UserFormDeleteDialogComponent>;
+
+  const deleteButton: string = getDataTestIdAttributeOf('dialog-delete-button');
+  const cancelButton: string = getDataTestIdAttributeOf('dialog-cancel-button');
+
+  beforeEach(async () => {
+    await TestBed.configureTestingModule({
+      imports: [UserFormDeleteDialogComponent, ButtonWithSpinnerComponent],
+    }).compileComponents();
+
+    fixture = TestBed.createComponent(UserFormDeleteDialogComponent);
+    component = fixture.componentInstance;
+    fixture.detectChanges();
+  });
+
+  it('should create', () => {
+    expect(component).toBeTruthy();
+  });
+
+  describe('template', () => {
+    describe('cancel button', () => {
+      it('should exist', () => {
+        existsAsHtmlElement(fixture, cancelButton);
+      });
+
+      it('should emit cancel on click', () => {
+        component.cancel.emit = jest.fn();
+
+        dispatchEventFromFixture(fixture, cancelButton, 'clickEmitter');
+
+        expect(component.cancel.emit).toHaveBeenCalled();
+      });
+    });
+
+    describe('delete button', () => {
+      it('should exist', () => {
+        const stateResource: StateResource<unknown> = createEmptyStateResource();
+        component.deleteUserStateResource = stateResource;
+
+        fixture.detectChanges();
+
+        const button: ButtonWithSpinnerComponent = getDebugElementFromFixtureByCss(fixture, deleteButton).componentInstance;
+        expect(button._stateResource).toBe(stateResource);
+      });
+
+      it('should emit delete on click', () => {
+        component.delete.emit = jest.fn();
+
+        dispatchEventFromFixture(fixture, deleteButton, 'clickEmitter');
+
+        expect(component.delete.emit).toHaveBeenCalled();
+      });
+    });
+  });
+});
diff --git a/alfa-client/libs/admin/user/src/lib/user-form/user-form-delete-dialog-container/user-form-delete-dialog/user-form-delete-dialog.component.ts b/alfa-client/libs/admin/user/src/lib/user-form/user-form-delete-dialog-container/user-form-delete-dialog/user-form-delete-dialog.component.ts
new file mode 100644
index 0000000000000000000000000000000000000000..f48fe94e09e8bc6bcf9daef759ab22d6a85403c1
--- /dev/null
+++ b/alfa-client/libs/admin/user/src/lib/user-form/user-form-delete-dialog-container/user-form-delete-dialog/user-form-delete-dialog.component.ts
@@ -0,0 +1,16 @@
+import { StateResource } from '@alfa-client/tech-shared';
+import { Component, EventEmitter, Input, Output } from '@angular/core';
+import { ButtonWithSpinnerComponent } from '@ods/component';
+
+@Component({
+  selector: 'admin-user-form-delete-dialog',
+  standalone: true,
+  imports: [ButtonWithSpinnerComponent],
+  templateUrl: './user-form-delete-dialog.component.html',
+})
+export class UserFormDeleteDialogComponent {
+  @Input() username: string;
+  @Input() deleteUserStateResource: StateResource<unknown>;
+  @Output() cancel: EventEmitter<void> = new EventEmitter<void>();
+  @Output() delete: EventEmitter<void> = new EventEmitter<void>();
+}
diff --git a/alfa-client/libs/admin/user/src/lib/user-form/user-form-delete-dialog/user-form-delete-dialog.component.html b/alfa-client/libs/admin/user/src/lib/user-form/user-form-delete-dialog/user-form-delete-dialog.component.html
deleted file mode 100644
index 51bec494bace9b21847aadd47aaa5e0f0851e6d6..0000000000000000000000000000000000000000
--- a/alfa-client/libs/admin/user/src/lib/user-form/user-form-delete-dialog/user-form-delete-dialog.component.html
+++ /dev/null
@@ -1 +0,0 @@
-<p>user-form-delete-dialog works!</p>
diff --git a/alfa-client/libs/admin/user/src/lib/user-form/user-form-delete-dialog/user-form-delete-dialog.component.spec.ts b/alfa-client/libs/admin/user/src/lib/user-form/user-form-delete-dialog/user-form-delete-dialog.component.spec.ts
deleted file mode 100644
index b7c73d98cad4c17a15bb8b87f0577da60ac8fbee..0000000000000000000000000000000000000000
--- a/alfa-client/libs/admin/user/src/lib/user-form/user-form-delete-dialog/user-form-delete-dialog.component.spec.ts
+++ /dev/null
@@ -1,23 +0,0 @@
-import { ComponentFixture, TestBed } from '@angular/core/testing';
-
-import { UserFormDeleteDialogComponent } from './user-form-delete-dialog.component';
-
-describe('UserFormDeleteDialogComponent', () => {
-  let component: UserFormDeleteDialogComponent;
-  let fixture: ComponentFixture<UserFormDeleteDialogComponent>;
-
-  beforeEach(async () => {
-    await TestBed.configureTestingModule({
-      imports: [UserFormDeleteDialogComponent]
-    })
-    .compileComponents();
-
-    fixture = TestBed.createComponent(UserFormDeleteDialogComponent);
-    component = fixture.componentInstance;
-    fixture.detectChanges();
-  });
-
-  it('should create', () => {
-    expect(component).toBeTruthy();
-  });
-});
diff --git a/alfa-client/libs/admin/user/src/lib/user-form/user-form-delete-dialog/user-form-delete-dialog.component.ts b/alfa-client/libs/admin/user/src/lib/user-form/user-form-delete-dialog/user-form-delete-dialog.component.ts
deleted file mode 100644
index 42b9a86ebcad8d8284f82063fd80a3a3cad018cf..0000000000000000000000000000000000000000
--- a/alfa-client/libs/admin/user/src/lib/user-form/user-form-delete-dialog/user-form-delete-dialog.component.ts
+++ /dev/null
@@ -1,9 +0,0 @@
-import { Component } from '@angular/core';
-
-@Component({
-  selector: 'admin-user-form-delete-dialog',
-  standalone: true,
-  imports: [],
-  templateUrl: './user-form-delete-dialog.component.html',
-})
-export class UserFormDeleteDialogComponent {}