Можно ли переопределить ApplicationUser приложения ASP.NET Identity?

При попытке добавить Override void ParseEntity и получить следующее сообщение об ошибке:

Код серьезности Описание Ошибка состояния подавления строки файла проекта CS0115 "ApplicationUser.ParseEntity(ref ApplicationUser)": не найден подходящий метод для переопределения...\Models\IdentityModels.cs 47 Active

Я пытаюсь добавить:

    public override void ParseEntity(ref ApplicationUser entity)
    {
        entity.Email = Email;
        entity.UserName = Email;
        entity.FirstName = FirstName;
        entity.LastName = LastName;
        entity.UserTypeID = UserTypeID;
        entity.ModifiedDate = DateTime.Now;
        entity.ModifiedBy = Id;
    }

на мой IdentityModel.cs. ApplicaionUser выглядит следующим образом:

public class ApplicationUser : IdentityUser<string, ApplicationUserLogin, ApplicationUserRole, ApplicationUserClaim>
    {
        public ApplicationUser()
        {
            this.Id = Guid.NewGuid().ToString();
            // Add any custom User properties/code here 
        }
        [Display(Name = "First Name")]
        [Required]
        public string FirstName { get; set; }
        [Display(Name = "Last Name")]
        [Required]
        public string LastName { get; set; }
        [Display(Name = "Guarantee Limit")]
        public Nullable<double> GuaranteeLimit { get; set; }
        [Display(Name = "User Type")]
        public int UserTypeID { get; set; }
        [Display(Name = "Terms And Conditions Version")]
        public string TermsAndConditionsVersion { get; set; }
        [Display(Name = "Last Terms And Conditions Date")]
        public DateTime ? LastTermsAndConditionsDate { get; set; }
        [Display(Name = "Last Login Date And Time")]
        public DateTime ? LastLoginDateTime { get; set; }
        [Display(Name = "Created Date")]
        public DateTime CreatedDate { get; set; }
        [Display(Name = "Modified Date")]
        public DateTime ? ModifiedDate { get; set; }
        [Display(Name = "Modified By")]
        public string ModifiedBy { get; set; }

/////////////////I want to add the override here/////////////////

        public async Task<ClaimsIdentity> GenerateUserIdentityAsync(ApplicationUserManager manager)
        {
            // Note the authenticationType must match the one defined in CookieAuthenticationOptions.AuthenticationType
            var userIdentity = await manager.CreateIdentityAsync(this, DefaultAuthenticationTypes.ApplicationCookie);
            // Add custom user claims here
            return userIdentity;
        }
    }

Могу ли я добавить переопределение здесь или я что-то упустил? Я просмотрел несколько постов и попробовал рекомендовать добавить с помощью System.Web.Mvc, но это не имеет значения, то же сообщение об ошибке.

1 ответ

Ваш ApplicationUser реализует интерфейс IdentityUser. Интерфейсам нечего переопределять. Ваш класс ApplicationUser должен наследовать от другого класса, который имеет ParseEntity как виртуальный или абстрактный метод, чтобы переопределить его.

Другие вопросы по тегам