В моем проекте включена сторонняя регистрация, использующая ASP. Net Идентификация. После первоначального почтового запроса я перенаправляю через сторонний логин и возвращаюсь к OnGetCallbackAsyn c. Однако я хочу создать учетную запись с помощью usermanager и перенаправить на какую-то другую страницу.
public IActionResult OnPost ( string provider, string returnUrl = null )
{
// Request a redirect to the external login provider.
var redirectUrl = Url.Page( "./ExternalLogin", pageHandler: "Callback", values: new { returnUrl } );
var properties = _signInManager.ConfigureExternalAuthenticationProperties( provider, redirectUrl );
return new ChallengeResult( provider, properties );
}
public IActionResult OnGetAsync ()
{
return RedirectToPage( "./Login" );
}
public async Task<IActionResult> OnGetCallbackAsync ( string returnUrl = null, string remoteError = null )
{
...
return Page()
}
public async Task<IActionResult> OnPostConfirmationAsync ( string returnUrl = null )
{
... //create accounts etc.
return LocalRedirect( returnUrl );
}
Когда он возвращается от стороннего поставщика, он использует мой метод OnGetCallbackAsyn c. В некоторых логах c отображается страница, где пользователь вводит свою электронную почту и кнопку отправки. Когда они отправляют сообщение, оно обращается к методу подтверждения публикации и создает пользователя на основе входящего электронного письма и информации о третьей стороне.
Моя проблема в том, что я хочу пропустить этот шаг, когда пользователь вводит какую-либо информацию или вынужден нажимать другую кнопку отправки.
Должен ли я беспокоиться о том, чтобы сохранить этот запрос идемпотентным? Если да, то как мне go сообщить о том, что мне нужно выполнить этот пост-запрос или выполнить обработку на стороне сервера?