クライアントオプションで、EnableLocalLoginをfalseに設定してみてください。 docsから:
EnableLocalLogin
このクライアントは、ローカルアカウントのみ、または外部のIdPを使用できるかどうかを指定します。デフォルトはtrueです。私もAsp.Netコアのアイデンティティを使用しています、とEnableLocalLoginがfalseで、唯一の外部プロバイダがある場合、私は地元のページをバイパスするAccountsControllerを設定し、またはIDPが明示的に要求に設定されている場合
。
[HttpGet]
[AllowAnonymous]
public async Task<IActionResult> Login(string returnUrl = null)
{
// Clear the existing external cookie to ensure a clean login process
await HttpContext.Authentication.SignOutAsync(_externalCookieScheme);
var context = await _interaction.GetAuthorizationContextAsync(returnUrl);
if (context?.IdP != null)
{
// if IdP is passed, then bypass showing the login screen
return ExternalLogin(context.IdP, returnUrl);
}
var vm = await BuildLoginViewModelAsync(returnUrl, context);
if (vm.EnableLocalLogin == false && vm.ExternalProviders.Count() == 1)
{
// only one option for logging in
return ExternalLogin(vm.ExternalProviders.First().AuthenticationScheme, returnUrl);
}
return View(vm);
}