如何在每次用户通过netcore2.0中的授权处理程序时检查用户属性



我有本地用户身份验证,密码必须在20天后过期。我在ApplicationUser中添加了属性LastPasswordChangedDate,并编写了一个函数来检查密码是否未过期。您能告诉我,每次用户通过授权处理程序时,我应该覆盖什么任务来执行pasword检查吗?

public IActionResult CheckUserPasswordExparation(ApplicationUser appUser, string returnUrl)
{
if (appUser.LastPasswordChangedDate.AddDays(PasswordExpireDays) < DateTime.Now)
{
return RedirectToAction("ChangePassword", "Manage");
}
return RedirectToAction(returnUrl);
}

我正在检查几个关键函数的密码生存期。我还隐藏了菜单。我认为这只是一个变通办法。我还在找。当我找到解决方案时,我会告诉你的。我在论坛上添加了这个帖子,因为目前我对我的解决方案不满意。

为了检查用户的密码是否过期,可以在登录过程中调用CheckUserPasswordExparation。在CCD_ 2中不需要调用这个,每次访问CCD_。

此外,在AuthorizationHandler中,您无法调用RedirectToAction。您只能在密码过期时在HandleRequirementAsync中调用context.Fail();以指示授权失败。

最新更新