Benutzer löschen personenbezogene Daten deleteAccount () in Blazor und Microsoft Identity LibraryC#

Ein Treffpunkt für C#-Programmierer
Anonymous
 Benutzer löschen personenbezogene Daten deleteAccount () in Blazor und Microsoft Identity Library

Post by Anonymous »

Okay, ich bin hier ziemlich verloren und das Internet ist nicht viel Hilfe - es gibt so viele Beiträge darüber, aber jeder scheint eine eigene Version des Codes zu haben. Ich bin nur ein Hobby -Programmierer, der mit Blazor, C#und SQL arbeitet. Ich erstelle eine Web -App zum Spaß, aber dieser Teil entwässert so viel Energie, dass ich nicht sicher bin, was ich tun soll.

Code: Select all

user = await UserAccessor.GetRequiredUserAsync(HttpContext);
In der Oninitialisierung .
und um sicherzustellen

Code: Select all

@attribute [ExcludeFromInteractiveRouting]
< /code>
Ich habe dies überprüft. Da dies jedoch im statischen Modus ausgeführt wird, kann ich den integrierten NavigationManager von Blazor 
und signInManager.SignoutAsync () auch nicht helfen.

Code: Select all

private async Task DeleteAccount()
{
if (AbleToDeleteAccount == true)
{
try
{
await reports.RemoveFavoriteAsync(CancellationToken, user.Id, null);
await reports.SetVoteAsync(CancellationToken, user.Id, null, 0, 0, true);
var logins = await UserManager.GetLoginsAsync(user);

foreach (var login in logins)
{
var result2 = await UserManager.RemoveLoginAsync(user, login.LoginProvider, login.ProviderKey);

if (!result2.Succeeded)
{
throw new InvalidOperationException("Unexpected error occurred removing user login.");
}
}

var result = await UserManager.DeleteAsync(user);

if (!result.Succeeded)
{
throw new InvalidOperationException("Unexpected error occurred deleting user.");
}

if (user.CustomerId != null)
{
var companies = await CustomerService.GetCustomer(CancellationToken, null, user.CustomerId);

if (companies.Count > 0)
{
var company = companies.FirstOrDefault();
var auditLog = await AuditLog.AddAuditLogAsync(null, company, null, "✅", $"User removed personal account: {user.UserName}", company!.Id.ToString(), "Delete", CancellationToken);
}
}

await SignInManager.SignOutAsync();
}
catch (Exception ex)
{
toastService.AddToast("Error", "An error occurred while deleting your account.", "error");
}
}
}
Ich würde es vorziehen, dies im InteractiveServer -Modus auszuführen, aber alles, was ich online gefunden habe, sagt mir, dass dies nicht möglich ist. Ich kann auch nicht die Umleitung zu einer anderen Seite bearbeiten. Ich habe verstanden, dass SignoutaSync () die Umleitung bereits verarbeiten sollte, aber nichts passiert. Ich habe an diesem Punkt zu viele Dinge ausprobiert, und jetzt ist das Ganze zu einem großen Krämpfen eines Chaos geworden. Vielen Dank im Voraus!

Code: Select all

at Microsoft.AspNetCore.Components.Server.Circuits.RemoteNavigationManager.NavigateToCore(String uri, NavigationOptions options)
at Microsoft.AspNetCore.Components.NavigationManager.NavigateToCore(String uri, Boolean forceLoad)
at Microsoft.AspNetCore.Components.NavigationManager.NavigateTo(String uri, Boolean forceLoad, Boolean replace)
at Project.Components.Account.Pages.DeletePersonalData.d__22.MoveNext() in C:\Users\baswi\OneDrive\_DEV\PS\Github\Project\wa-Project\Components\Account\Pages\DeletePersonalData.razor.cs:line 147
< /code>
Ich habe es nach der Anmeldemethode hinzugefügt: < /p>
   await SignInManager.SignOutAsync();
NavigationManager.NavigateTo("/");
< /code>
Vor der Vermittlungsmethode oder mit oder ohne Forceload ändert es nichts.private async Task DeleteAccount()
{
if (AbleToDeleteAccount == true)
{
await reports.RemoveFavoriteAsync(CancellationToken, user.Id, null);
await reports.SetVoteAsync(CancellationToken, user.Id, null, 0, 0, true);
var result = await UserManager.DeleteAsync(user);
if (!result.Succeeded)
{
throw new InvalidOperationException("Unexpected error occurred deleting user.");

}
if (user.CustomerId != null)
{
var companies = await CustomerService.GetCustomer(CancellationToken, null, user.CustomerId);
if (companies.Count > 0)
{
var company = companies.FirstOrDefault();
await AuditLog.AddAuditLogAsync(null, company, null, "✅", $"User removed personal account: {user.UserName}", company!.Id.ToString(), "Delete", CancellationToken);
}
}
await SignInManager.SignOutAsync();
NavigationManager.NavigateTo("/", true);
}
}

Quick Reply

Change Text Case: 
   
  • Similar Topics
    Replies
    Views
    Last post