BgEngine.Infraestructure.Security.CodeFirstMembershipProvider.GeneratePasswordResetToken C# (CSharp) Метод

GeneratePasswordResetToken() публичный Метод

public GeneratePasswordResetToken ( string userName, int tokenExpirationInMinutesFromNow ) : string
userName string
tokenExpirationInMinutesFromNow int
Результат string
        public override string GeneratePasswordResetToken(string userName, int tokenExpirationInMinutesFromNow)
        {
            if (string.IsNullOrEmpty(userName))
                    {
                        throw CreateArgumentNullOrEmptyException("userName");
                    }
                    using (BlogUnitOfWork context = new BlogUnitOfWork(new ModelContextInit()))
                    {
                        dynamic user = context.Users.FirstOrDefault(Usr => Usr.Username == userName);
                        if (user == null)
                        {
                            throw new InvalidOperationException("El usuario no existe");
                        }
                        if (!user.IsConfirmed)
                        {
                            throw new InvalidOperationException("El usuario no existe");
                        }
                        string token = null;
                        if (user.PasswordVerificationTokenExpirationDate > DateTime.UtcNow)
                        {
                            token = user.PasswordVerificationToken;
                        }
                        else
                        {
                            token = CodeFirstCrypto.GenerateToken();
                        }
                        user.PasswordVerificationToken = token;
                        user.PasswordVerificationTokenExpirationDate = DateTime.UtcNow.AddMinutes(tokenExpirationInMinutesFromNow);
                        context.SaveChanges();
                        return token;
                    }
        }