Ich erstelle eine App mit Identity 2.0, in der Admin andere Benutzer verbieten kann. Wenn sie sie verbieten, werden sie abgemeldet (wenn sie ihre nächste Aktion/Anfrage machen).ASP.NET MVC Meldung anzeigen, wenn Benutzer abgemeldet ist
Hier ist mein Verbot Aktion:
public async Task<ActionResult> Block(ApplicationUser formuser, string id)
{
if (id == null)
{
return new HttpStatusCodeResult(HttpStatusCode.BadRequest);
}
var user = await UserManager.FindByIdAsync(id);
user.DeleteDate = DateTime.Now;
user.IsConfirmed = false;
await UserManager.UpdateSecurityStampAsync(user.Id);
return RedirectToAction("Index");
}
Die UpdateSecuritStampAsync macht das ausloggen Teil. Außerdem finde ich es gut, wenn ich Startup.Auth.cs UseCookieAuthentication einfüge, weil ich dort eine Sache geändert habe, damit der Benutzer abgemeldet wird (wenn ich etwas Wichtiges vermisse, schreibe in die Kommentare, füge ich es hinzu)
app.UseCookieAuthentication(new CookieAuthenticationOptions
{
AuthenticationType = DefaultAuthenticationTypes.ApplicationCookie,
LoginPath = new PathString("/Account/Login"),
Provider = new CookieAuthenticationProvider
{
// Enables the application to validate the security stamp when the user logs in.
// This is a security feature which is used when you change a password or add an external login to your account.
OnValidateIdentity = SecurityStampValidator.OnValidateIdentity<ApplicationUserManager, ApplicationUser>(
validateInterval: TimeSpan.FromMinutes(0),
regenerateIdentity: (manager, user) => user.GenerateUserIdentityAsync(manager))
}
});
Ich habe die Standard TimeSpan von 30 Minuten auf 0 geändert (das könnte ein Fehler sein, aber es funktioniert). Die Hauptfrage dieses Threads ist, dass ich etwas erstellen möchte, wo es eine Nachricht anzeigen würde, wenn der Benutzer ausgeloggt ist. Wie soll ich das machen? (Wenn der Benutzer den Benutzer blockiert, erhält der Benutzer nach dem erneuten Laden seiner Seite eine Nachricht, dass er für schlechte Verwendung oder etwas blockiert wurde)
aber diese Methode sperrt sie für ein paar Tage aus, während meine Methode blockiert, bis jemand sie freigibt (weil Sie nicht wirklich wissen, wie lange es dauern wird). Gibt es ein Problem damit, dass du es so machst? – HighSepton
Sie können jemanden auf unbestimmte Zeit sperren und dann entsperren, wann immer Sie möchten. Beachten Sie, dass "forDays" nullfähig ist. Es ist bereits eingebaut, daher würde ich es bevorzugen, wenn Sie nicht versuchen, das Rad neu zu erfinden. –
Okay, nun, ich werde versuchen, es zu ändern. Aber das beantwortet meine Frage nicht wirklich, da ich gefragt habe, wie ich der ausgesperrten Person zeige, dass er ausgesperrt ist. Danke für den Vorschlag, obwohl – HighSepton