私はaspnetコア2.0を初めて使いました。私が達成したいのは、自分のプロファイルを完了していないユーザーをそうすることができるページにリダイレクトすることです。私は、Identity Serverのユーザー認証でデフォルトテンプレートを使用しています。ユーザがaspnet core 2.0で自分のプロフィールを完成させる方法を教えてください。
ミドルウェアを使用しようとしましたが、リダイレクトするページが空白になります。これが最善のアプローチか、誰かがそれを有効にするのに役立つことができますか?ここに私のミドルウェアがあります。
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);
}
}
}
ありがとうございます。
を試してみてください。そのロジックを追加する必要があります。これはX-Yの問題かもしれません – Nkosi
こんにちは@Nkosi、すばやい返信をいただきありがとうございます。私はelse条件を取り除き、if文の後に 'await next(context);と呼ぶだけで、まだ空白のページを取得しています。 –