And*_*eld 6 authentication xamarin.forms identityserver4
我们使用 WebView 实现方法构建了一个 Xamarin.Forms 应用程序,该应用程序作为 IdentityServer4 客户端运行,效果非常好。但是,Apple 不会在商店中接受我们的应用程序,因为他们希望在应用程序内进行身份验证和新帐户创建。因此,我一直在尝试将应用程序登录屏幕中输入的凭据发布到 IdentityServer,希望能够模拟用户输入凭据并提交(发布)登录页面时发生的相同过程:
public async Task<IActionResult> Authenticate([FromBody] UserLoginViewModel model)
{
String result = String.Empty;
try
{
if (!string.IsNullOrWhiteSpace(model.UserName))
{
UserKey user = await _userManager.FindByNameAsync(model.UserName.ToLowerInvariant());
if (String.IsNullOrEmpty(user?.SSID))
{ result = AuthenticateResultEnum.UserDoesNotExist.ToString(); }
else
{
var signin_result = await _signInManager.PasswordSignInAsync(user, model.Password, model.RememberLogin, false);
if (signin_result.Succeeded)
{
if (_interactionService.IsValidReturnUrl(model.ReturnUrl))
{
LocalRedirect(model.ReturnUrl);
}
}
else if (signin_result.IsLockedOut)
{ result = AuthenticateResultEnum.AccountLocked.ToString(); }
}
}
}
catch (Exception ex)
{
result = AuthenticateResultEnum.Error.ToString();
_logger.ExceptionAsync(ex);
}
return new JsonResult(result);
}
Run Code Online (Sandbox Code Playgroud)
然而,由于涉及所有重定向,我在这个过程中没有运气。是否有一种行之有效的方法可以使用 IdentityServer 对用户进行身份验证,而无需显示登录页面,而是从应用程序登录表单发布凭据和授权请求?其他知名应用程序似乎能够做到这一点,我只是寻求确认它可以通过 IdentityServer4 完成。
谢谢你,安德鲁
| 归档时间: |
|
| 查看次数: |
1847 次 |
| 最近记录: |