cannot convert from 'System.Security.Claims.ClaimsPrincipal' to 'Microsoft.AspNetCore.Identity.IdentityUser'

259
21 ноября 2021, 03:40

когда user передаю в метод OrderTicket выдает такую ошибку

cannot convert from 'System.Security.Claims.ClaimsPrincipal' to 'Microsoft.AspNetCore.Identity.IdentityUser'
public string OrderTicket(string EventName, int Number)
        {
            var user = this.User;
            var result = new EventService(
                _eventRepository
            ).OrderTicket(EventName, Number, user);
            if (result == false)
            {
                return "can't order this event";
            }
            return "ordered";
        }

как user превратить в Microsoft.AspNetCore.Identity.IdentityUser?

public bool OrderTicket(string eventName, int number, IdentityUser user)
        {
            var evnt = this.repository.ById(eventName);
            var seat = this.repository.ByOrderSeat(number);
            var ticket = new Ticket()
            {
                Event = evnt,
                Seat = seat,
                User = user
            };
            if (seat.Order == true)
            {
                return false;
            }
            seat.Order = true;
            this.repository.AddTicket(ticket);
            this.repository.SaveChanges();
            return true;
        }
Answer 1

Посмотрите реализацию обоих классов и скажите, кто из них базовый(увидите, что это вообще 2 разных класса). Если при передаче c# не может распознать наследование, то он и не сможет выполнить конвертацию "на лету", и придется реализовать все самому.

READ ALSO
Проблема с реализацией интерфейса

Проблема с реализацией интерфейса

Столкнулся с проблемой: по заданию курсовой надо создать интерфейс и реализовать его

115
Как передать данные с одного UserControl в другой

Как передать данные с одного UserControl в другой

У меня есть два User Control: ProgramsUS и ее дочерняя ShowCodeUSНа ProgramsUS находится treeview, нажимая на его узел, появляется ShowCodeUS

160