У меня есть простое программное обеспечение, написанное на C #, которое генерирует значение токена с помощью закрытого ключа RSA, хранящегося на одном перьевом диске, с аутентификацией по отпечатку пальца. Мне нужен способ входа в мое приложение, используя имя пользователя, пароль и сгенерированный токен автоматически. Мое приложение использует AspNetCore.Identity, как указано в заголовке.
Я попытался сгенерировать и запустить простую веб-форму из приложения, например:
<HEAD>
<script>
function loginForm() {
document.myform.action = "http://localhost:5000";
document.myform.submit();
}
</script>
</HEAD>
<BODY onLoad="loginForm()">
<FORM id="myform" METHOD="POST">
<INPUT id="UserName" VALUE="uservalue">
<INPUT id="Password" VALUE="passwd">
<INPUT id="SecretToken" VALUE="tokenval">
</FORM>
</BODY>
</HTML>
Перенаправление входа в формудействие здесь. Нужно ли wau автоматически предоставлять учетные данные для метода ExternaLoginSing, минуя форму входа?
[HttpGet]
[AllowAnonymous]
public async Task<IActionResult> Login(string returnUrl = null)
{
ClearSession();
// Clear the existing external cookie to ensure a clean login process
await HttpContext.SignOutAsync(IdentityConstants.ExternalScheme);
ViewData["ReturnUrl"] = returnUrl;
return View();
}
private async Task<Microsoft.AspNetCore.Identity.SignInResult> ExternalLoginSign(UserAuthenticationType uat, String username, int? val, string token)
{
String providerName = String.Empty;
switch (uat)
{
case UserAuthenticationType.USERAUTH_REMOTE:
providerName = ...;
...
break;
case UserAuthenticationType.USERAUTH_LDAP:
providerName = ...;
...
break;
}
return await _signInManager.ExternalLoginSignInAsync(providerName, username, token, true);
}