Добавление свойств в User.Identity - PullRequest
0 голосов
/ 28 мая 2020

Я новичок в MVC и создаю базовое c приложение, подобное Paypal, пользователи могут отправлять и получать деньги друг от друга, в настоящее время работаю на странице обзора пользователя.

Я добавил дополнительный столбец в таблице AspNetUsers под названием «деньги». В этом столбце хранится двойная. Сохранение значения в этом столбце для моих пользователей работает, но я хочу отобразить эти значения в моем файле index.cs html, используя User.Identity.(my extension). Я нашел несколько примеров, которые дают один и тот же ответ.

После попытки для реализации этого я получаю следующую ошибку:

Код серьезности Описание Ошибка состояния подавления строки файла проекта CS0311 Тип «PayMeDAL.Models.ApplicationUser» не может использоваться в качестве параметра типа «TUser» в generi c тип или метод UserManager. Неявное преобразование ссылки из PayMeDAL.Models.ApplicationUser в Microsoft.As pNet .Identity.IUser отсутствует. PayMeDAL C: \ Users \ jarno \ Documents \ PayMeV2 \ PayMe \ PayMeDAL \ Models \ ApplicationUser.cs 12 Активный

Я не понимаю, что здесь не так.

My ApplicationUser из моего DAL:

using Microsoft.AspNet.Identity;
using Microsoft.AspNetCore.Identity;
using System.Security.Claims;
using System.Threading.Tasks;

namespace PayMeDAL.Models
{
    public class ApplicationUser : IdentityUser
    {
        public double Money { get; set; }

        public async Task<ClaimsIdentity> GenerateUserIdentityAsync(Microsoft.AspNet.Identity.UserManager<ApplicationUser> mngr)
        {
            var userIdentity = await mngr.CreateIdentityAsync(this, DefaultAuthenticationTypes.ApplicationCookie);
            userIdentity.AddClaim(new Claim("Money", this.Money.ToString()));
            return userIdentity;
        } 


    }
}

Мой класс расширения:

using System.Security.Claims;
using System.Security.Principal;

namespace PayMe.Extensions
{
    public static class IdentityExtension
    {

        public static string GetUserMoney(this IIdentity identity)
        {
            var claimIdent = identity as ClaimsIdentity;
            return claimIdent != null
                && claimIdent.HasClaim(c => c.Type == "Money")
                ? claimIdent.FindFirst("Money").Value
                : string.Empty;
        }
    }
}

Если бы кто-нибудь мог мне помочь, это было бы здорово!

...