我正在尝试使用Razor页面(我之前的经验是使用网页表单),并且在用户登录后设置重定向时遇到了困难。
我想要做的是查看有关用户的一些数据,然后根据信息重定向到特定页面。
在VS提供的默认模板中,这些代码行处理登录:
var result = await _signInManager.PasswordSignInAsync(Input.Email, Input.Password, Input.RememberMe, lockoutOnFailure: true);
if (result.Succeeded)
{
_logger.LogInformation("User logged in.");
return LocalRedirect(Url.GetLocalUrl(returnUrl));
}
我尝试使用UserManager实例获取有关已登录用户的信息,但它不起作用(它只返回null)。
var result = await _signInManager.PasswordSignInAsync(Input.Email, Input.Password, Input.RememberMe, lockoutOnFailure: true);
if (result.Succeeded)
{
_logger.LogInformation("User logged in.");
var name = _userManager.GetUserName(HttpContext.User); //Returns null
return LocalRedirect(Url.GetLocalUrl(returnUrl));
}
我猜这是因为在加载重定向页面之前没有设置身份验证cookie? (如果我在result.Succeeded之后立即查询SignInManager,它会告诉我用户没有登录)。
任何关于让它做我想做的最好技术的指针都会非常感激。并不完全相信Razor页面文档可以随时使用!