Мне нужно знать, как перенаправить пользователя, если он вошел в мое приложение. В моей проблеме есть 2 части:
BookDetails.csконтроллерЯ уже решил проблему 1, добавив следующий код Program.cs:builder.Services.AddControllersWithViews().AddRazorPagesOptions(options => { options.Conventions.AddAreaPageRoute("Identity", "/Account/Login", "")})
Я знаю, как проверить, вошел ли пользователь в данный момент. Если бы я хотел проверить, вошел ли пользователь в данный момент BookDetailsController, я бы включил следующий код в файл контроллера:
...
private readonly SignInManager<IdentityUser> _signInManager;
public BookDetailsController(BookClubBookDetailsContext context, SignInManager<IdentityUser> signInManager)
{
_signInManager = signInManager;
_context = context;
}
...
Как перенаправить со страницы входа, если пользователь уже вошел в систему?
Редактировать:
Вот моя проблема, описанная визуально:

Решение проблемы
Чтобы перенаправить после входа в систему, просто обновите свой метод входа таким образом в AccountController.
public async Task<IActionResult> Login(string returnUrl = null)
{
//do sign in
//if success then redirect
if(!string.IsNullOrEmpty(returnUrl))
{
Redirect(returnUrl);
}
}
если вы используете страницу, проверьте /account/login.cshrml.cs
public async Task<IActionResult> OnPostAsync(string returnUrl = null)
{
returnUrl??= Url.Content("~/");
//signIn using SignInManager
if (result.Succeeded)
{
//if redirected from other site
//return Redirect(returnUrl);
//Same site
return LocalRedirect(returnUrl);
}
}
Комментариев нет:
Отправить комментарий