从asp.net Identity 1切换到2,我们的OnValidateIdentity代码不再有效

时间:2015-02-02 11:02:24

标签: c# asp.net asp.net-mvc asp.net-identity

我们最近在.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,等等。

我应该在哪里/如何实施这些验证检查?

0 个答案:

没有答案