Are you 100% sure you've followed https://world.episerver.com/documentation/Items/Installation-Instructions/Installing-Episerver-updates/#epifeed for setting up the nuget feeds correctly.
Once you've done this you need to click on the solution and choose restore nuget packages which should bring the episerver packages contained the ApplicationUser down. I'm not sure why you're having problems with links or editing posts, there's not usually an issue.
Thanks Scott. Yes, I am 100% I have stup the netget stuff as per that link. If I do "restore newget packages" I get
"All packages are already installed and there is nothing to restore."
But vs cant resolve many packages, including "ApplicationUser", "UserStore", "IPsswordHasher" etc. How do I resolve these?
Shame this forum doesnt support uploading images.
Note, I have done steps 1 to 4 under the section: "Adding the Episerver NuGet feed".
I also shut down VS and created a new empty episever project from scratch. Same problem.
In desperation, I started going through the 100 or so packages and manually installing them thusly:
PM> Install-Package EPiServer.CMS.UI.AspNetIdentity
But as yet have not hit anything which can resolve these dependecies.
This forum wont let me edit the last post (Says "unable to edit post" in pinkwhen I try to submit), so creating a new post:
In VS, there is a visual "NuGet - Solution" window, which has "browse, Installed, Updates and Consolidate". If i select "Episerver" under "Package source" I also see hundreds of packages, such as "ABTestingCriterion by CriteriaPack Project". However, I dont know if any of these will have the missing dependencies?
If it helps, if I do "manage nuget packages for solution", under the intsalled tab are the following:
1) EPiSerer.CMS, .CMS.AspNet, .CMS.Core, .CMS.TinyMce, .CMS.UI, .CMS.UI.AspNetIdentity, .CMS.UI.Core, .Framework, .Framework.Asp.Net, ServiceLocation.StructuredMap
2) a whole bunch of non episerver stuff.
Note also, that I dont know what to put under "using". I have randomly put every using in every example I can find, e.g.
using System.Configuration.Provider;
using System.Web.Security;
using EPiServer.Framework;
using EPiServer.Framework.Initialization;
using EPiServer.Logging.Compatibility;
using EPiServer.ApplicationModules.Security;
using System.ComponentModel.DataAnnotations;
using EPiServer.Core;
using EPiServer.DataAbstraction;
using EPiServer.DataAnnotations;
etc.
Of these, the only ones not greyed out are Framework and Framework.Initialization.
I dont know if the problem is I dont know how to find the right "using" location for a given namespace (such as AppliatoinUser), or that I dont have the right dependencies installed.
I cant find any documentation which links a given object (such as ApplicationUser) with the given "using" statement with some sort of external dependency or library provding that code.
FYI, below is the code which cant find the dependencies (to try to create a user as I cant login)
cant find ApplicationUser, UserStore<>, IPaswordHasher, ApplicationDBContext, PasswordHasher, IList etc.
[InitializableModule]
[ModuleDependency(typeof(EPiServer.Web.InitializationModule))]
public class EpiserverInitialization : IInitializableModule
{
private static readonly string[] _roles = { "WebAdmins", "WebEditors" };
public void Initialize(InitializationEngine context)
{
using (UserStore<ApplicationUser> store = new UserStore<ApplicationUser>(new ApplicationDbContext<ApplicationUser>("EPiServerDB")))
{
//If there's already a user, then we don't need a seed
if (!store.Users.Any(x => x.UserName == "sysadmin"))
{
var createdUser = CreateUser(store, "sysadmin", "p@ssword", "sysadmin@mysite.com");
AddUserToRoles(store, createdUser, _roles);
store.UpdateAsync(createdUser).GetAwaiter().GetResult();
}
}
}
private ApplicationUser CreateUser(UserStore<ApplicationUser> store, string username, string password, string email)
{
//We know that this Password hasher is used as it's configured
IPasswordHasher hasher = new PasswordHasher();
string passwordHash = hasher.HashPassword(password);
ApplicationUser applicationUser = new ApplicationUser
{
Email = email,
EmailConfirmed = true,
LockoutEnabled = true,
IsApproved = true,
UserName = username,
PasswordHash = passwordHash,
SecurityStamp = Guid.NewGuid().ToString()
};
store.CreateAsync(applicationUser).GetAwaiter().GetResult();
//Get the user associated with our username
ApplicationUser createdUser = store.FindByNameAsync(username).GetAwaiter().GetResult();
return createdUser;
}
private void AddUserToRoles(UserStore<ApplicationUser> store, ApplicationUser user, string[] roles)
{
IUserRoleStore<ApplicationUser, string> userRoleStore = store;
using (var roleStore = new RoleStore<IdentityRole>(new ApplicationDbContext<ApplicationUser>("EPiServerDB")))
{
IList<string> userRoles = userRoleStore.GetRolesAsync(user).GetAwaiter().GetResult();
foreach (string roleName in roles)
{
if (roleStore.FindByNameAsync(roleName).GetAwaiter().GetResult() == null)
{
roleStore.CreateAsync(new IdentityRole { Name = roleName }).GetAwaiter().GetResult();
}
if (!userRoles.Contains(roleName))
userRoleStore.AddToRoleAsync(user, roleName).GetAwaiter().GetResult();
}
}
}
public void Uninitialize(InitializationEngine context)
{
}
public void Preload(string[] parameters)
{
}
}
Last week I installed the latest visual studio (community), and the episerver plugin.
For good measure, I also installed the "nuget" thing https:// nuget.episerver.com/ feed/packages.svc/ (link broken up because this forum gives "server error" if you include links)
There are a lot of code examples for epi, but the majority are missing the vital information needed to compile the code.
e.g. this line.
using (UserStore<ApplicationUser> store = new UserStore<ApplicationUser>(new ApplicationDbContext<ApplicationUser>("EPiServerDB")))
Vistual studio syas "The type or namespace "ApplicationUser" could not be find as you are missing a using directive or assembly reference"?
How does one resolve this? Googling "EPiServer ApplicatoinUser" does not result in any hits. I was hoping to find some documenation for this package, with instructions on how to include it.
Are there steps I can use to locate all of the varoius missing pieces?