No public constructor is available for type System.Security.Principal.IIdentity
UnityConfig File:
var container = new UnityContainer();
container.RegisterType<IUnitOfWork, UnitOfWork>();
container.RegisterType<IUserBiz, UserBiz>();
container.RegisterType<User>(new InjectionConstructor());
container.RegisterType<ClaimsIdentity>(new InjectionConstructor());
container.RegisterType<UserDTO >();
container.RegisterType<IBiz<UserDTO>>();
container.RegisterType<UserAccess>(new InjectionConstructor());
container.RegisterType<UserGroup>(new InjectionConstructor());
container.RegisterType<ILookupBiz, LookupBiz>();
container.RegisterType<IRepository<User>, EFRepository<User>>();
container.RegisterType<DbContext, ToptecDB>();
container.RegisterType(typeof(ISecureDataFormat<>), typeof(SecureDataFormat<>));
container.RegisterType<ITextEncoder, Base64UrlTextEncoder>();
container.RegisterType<IDataSerializer<AuthenticationTicket>, TicketSerializer>();
container.RegisterType<IDataProtector>(new ContainerControlledLifetimeManager(),
new InjectionFactory(c => new DpapiDataProtectionProvider().Create("Toptec")));
container.RegisterType<AccountController>(new InjectionConstructor());
I wanted to initialize the interfaces :
private IUserBiz _userBiz;
private IUnitOfWork _unitOfWork;
public ValuesController(){
_userBiz = userBiz;
_unitOfWork = unitOfWork;
}
What I have tried:
namespace Toptec.BLL.Modules.Membership
{
public class UserBiz : BaseBiz<User, UserDTO>, IUserBiz
{
private readonly IRepository<User> _userRepository;
private readonly IRepository<UserAccess> _userRoleRepository;
private readonly IUserGroupBiz _userGroupBiz;
private IEmployeeBiz _employeeBiz;
private IVirtualOrganizationStructureBiz _virtualOrganizationStructureBiz;
public static string connstr =
AppSettings.TopTecConnectionString;
public UserBiz(IUnitOfWork unitOfWork, IUserGroupBiz userGroupBiz, IEmployeeBiz employeeBiz, IVirtualOrganizationStructureBiz virtualOrganizationStructureBiz)
: base(unitOfWork)
{
_userRepository = unitOfWork.Repository<User>();
_userRoleRepository = unitOfWork.Repository<UserAccess>();
_userGroupBiz = userGroupBiz;
_employeeBiz = employeeBiz;
_virtualOrganizationStructureBiz = virtualOrganizationStructureBiz;
}
}
public class EFRepository<T> : IRepository<T> where T : BaseEntity
{
private readonly DbContext _context;
protected DbSet<T> Entities { get; private set; }
private readonly CurrentUser _currentUser;
private bool _checkTenant;
public EFRepository(DbContext context, CurrentUser currentUser)
{
this._context = context;
this._currentUser = currentUser;
this.Entities = _context.Set<T>();
if (currentUser.IsAuthenticated)
{
_checkTenant = !typeof(T).IsSubclassOf(typeof(StrongEntityNoTenant));
}
}