public async Task <IActionResult> LoginWithCard(string deviceCode, string cardNo) { var result = new ResultEntity(); var card = await _cardAppService.GetCardByNo(cardNo); if (card == null) { result.Message = "无效证卡"; } else { if (!card.Enabled) { result.Message = "该卡片尚未启用,无法登录"; } else { var user = await _userAppService.GetForEditByIdAsync(card.UserId); var usbKeyNo = Request.Cookies["KOAL_CERT_CN"]?.Trim(); usbKeyNo = usbKeyNo ?? ""; var loginResult = await _accountAppService.LoginAsync(user.UserName, user.Password, usbKeyNo); switch (loginResult.Result) { case EnumLoginResult.登录成功: case EnumLoginResult.强制修改密码: var client = await _clientAppService.GetClient(deviceCode); if (client != null) { result.Data = client.HomePage; } await HttpContext.SignInAsync(CookieAuthenticationDefaults.AuthenticationScheme, loginResult.ClaimsPrincipal, new AuthenticationProperties { ExpiresUtc = DateTimeOffset.Now.AddMinutes(_accountSettings.Value.ExpiryTime) }); result.Success = true; result.Data = string.IsNullOrEmpty(result.Data) ? "/Home/Index" : result.Data; break; default: result.Message = result.Message; break; } } } return(Json(result)); }