我们最近在.net mvc 5项目中从Identity 1.0升级到2.0。
我发现“记住我”的cookie不再有效,所以我在下面的代码中找到了代码:
OnValidateIdentity = SecurityStampValidator
.OnValidateIdentity<FrontendUserManager, FrontendUser>(
validateInterval: TimeSpan.FromMinutes(30),
regenerateIdentity: (manager, user)
=> user.GenerateUserIdentityAsync(manager)
)
问题是我们的旧代码有些不同,因为我们检查了user.Deleted和user.Enabled属性:
OnValidateIdentity = context =>
{
UnitOfWork uow = new UnitOfWork();
string userID = context.Identity.GetUserId();
var user = uow.FrontendUserRepository.GetByID(userID);
if (user != null)
{
if (user.Deleted || !user.Enabled)
{
context.RejectIdentity();
context.OwinContext.Authentication.SignOut();
}
}
return Task.FromResult<object>(null);
}
我不知道如何让我们的旧代码在Identity 2.0中运行,我们需要尽快添加更多检查,例如user.EnabledToDate,等等。
我应该在哪里/如何实施这些验证检查?