using JiShe.ServicePro.BasicManagement.ConfigurationOptions; using JiShe.ServicePro.BasicManagement.Users; using JiShe.ServicePro.BasicManagement.Users.Dtos; using Microsoft.AspNetCore.Mvc.RazorPages; namespace JiShe.ServicePro.Pages { public class Login : PageModel { private readonly IAccountAppService _accountAppService; private readonly ILogger _logger; private readonly IHostEnvironment _hostEnvironment; private readonly JwtOptions _jwtOptions; public Login(IAccountAppService accountAppService, ILogger logger, IHostEnvironment hostEnvironment, IOptionsSnapshot jwtOptions) { _accountAppService = accountAppService; _logger = logger; _hostEnvironment = hostEnvironment; _jwtOptions = jwtOptions.Value; } public void OnGet() { } public async Task OnPost() { string userName = Request.Form["userName"]; string password = Request.Form["password"]; if (userName.IsNullOrWhiteSpace() || password.IsNullOrWhiteSpace()) { Response.Redirect("/Login"); return; } try { var options = new CookieOptions { Expires = DateTime.Now.AddHours(_jwtOptions.ExpirationTime), SameSite = SameSiteMode.Unspecified, }; // 设置cookies domain //options.Domain = "ServicePro.cn"; var result = await _accountAppService.LoginAsync(new LoginInput() { Name = userName, Password = password }); Response.Cookies.Append(ServiceProHttpApiHostConst.DefaultCookieName, result.Token, options); } catch (Exception e) { _logger.LogError($"登录失败:{e.Message}"); Response.Redirect("/Login"); return; } Response.Redirect("/monitor"); } } }