GOOGLE ADS

воскресенье, 10 апреля 2022 г.

Identity - Как перенаправить пользователя, который вошел в систему

Мне нужно знать, как перенаправить пользователя, если он вошел в мое приложение. В моей проблеме есть 2 части:

  • Установите страницу по умолчанию /Account/Login

  • Если пользователь уже вошел в систему (флажок «Запомнить меня» установлен), то перенаправить на 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);
    }
    }

    Комментариев нет:

    Отправить комментарий

    Laravel Datatable addColumn returns ID of one record only

    Я пытаюсь использовать Yajra Datatable для интеграции DataTable на свой веб-сайт. Я смог отобразить таблицу, но столкнулся с проблемой. В по...