Ich bin neu in Aspnet Core 2.0 und was ich erreichen möchte, ist einen Benutzer, der ihr Profil nicht abgeschlossen hat, auf eine Seite umzuleiten, die sie tun können. Ich verwende die Standardvorlage mit Benutzerauthentifizierung für Identity Server.Wie stelle ich sicher, dass ein Benutzer sein Profil in aspnet core 2.0 vervollständigt?
Ich habe versucht, mit Middleware, aber die Seite, die ich umleiten, kommt leer. Ist dies der beste Ansatz oder kann jemand helfen, damit es funktioniert? Hier ist meine Middleware.
public class FarmProfileMiddleware
{
private readonly RequestDelegate next;
public FarmProfileMiddleware(RequestDelegate next)
{
this.next = next;
}
public async Task Invoke(HttpContext context, UserManager<ApplicationUser> userManager)
{
var user = await userManager.GetUserAsync(context.User);
if (user != null)
{
if (!user.EmailConfirmed && !context.Request.Path.ToString().Contains("profile"))
{
var url = context.Request.PathBase + "/Users/Profile";
context.Response.Redirect(url);
}
}
else
{
await next(context);
}
}
}
Vielen Dank im Voraus.
Gerade in der aktuellen Logik in Ihrem Code sucht ich feststellen, dass, wenn der Benutzer nicht null ist und sein Profil hat, wird Kurzschluss beendet das Gespräch. Sie müssen diese Logik hinzufügen. Dies kann ein X-Y Problem sein – Nkosi
Hallo @ Nkosi, danke für die schnelle Antwort. Ich habe die else-Bedingung entfernt und einfach 'next next (context) genannt;' nach der if-Anweisung bekomme ich immer noch eine leere Seite. –