Update with latest Identity API changes

This commit is contained in:
Hao Kung 2014-05-05 11:35:18 -07:00
parent 39b5c4439b
commit 36770ccf05
3 changed files with 30 additions and 30 deletions

View File

@ -11,31 +11,15 @@ namespace MusicStore.Controllers
[Authorize]
public class AccountController : Controller
{
public AccountController(ApplicationUserManager userManager)
public AccountController(ApplicationUserManager userManager, ApplicationSignInManager signInManager)
{
UserManager = userManager;
SignInManager = signInManager;
}
public UserManager<ApplicationUser> UserManager { get; private set; }
private SignInManager<ApplicationUser> _signInManager;
public SignInManager<ApplicationUser> SignInManager
{
get
{
if (_signInManager == null)
{
_signInManager = new SignInManager<ApplicationUser>
{
UserManager = UserManager,
Context = Context,
AuthenticationType = DefaultAuthenticationTypes.ApplicationCookie
};
}
return _signInManager;
}
set { _signInManager = value; }
}
public ApplicationSignInManager SignInManager { get; private set; }
//
// GET: /Account/Login
@ -96,7 +80,7 @@ namespace MusicStore.Controllers
//Bug: https://github.com/aspnet/WebFx/issues/247
//if (ModelState.IsValid == true)
{
var user = new ApplicationUser() { UserName = model.UserName };
var user = new ApplicationUser { UserName = model.UserName };
var result = await UserManager.CreateAsync(user, model.Password);
if (result.Succeeded)
{

View File

@ -1,16 +1,24 @@
using System;
using Microsoft.AspNet.Abstractions;
using Microsoft.AspNet.DependencyInjection;
using Microsoft.AspNet.Identity;
using Microsoft.AspNet.Identity.Security;
namespace MusicStore.Models
{
public class ApplicationUserManager : UserManager<ApplicationUser>
{
public ApplicationUserManager(IServiceProvider services) : base(services) { }
public ApplicationUserManager(IServiceProvider services, IUserStore<ApplicationUser> store, IOptionsAccessor<IdentityOptions> optionsAccessor) : base(services, store, optionsAccessor) { }
}
public class ApplicationRoleManager : RoleManager<IdentityRole>
{
public ApplicationRoleManager(IServiceProvider services) : base(services) { }
public ApplicationRoleManager(IServiceProvider services, IRoleStore<IdentityRole> store) : base(services, store) { }
}
public class ApplicationSignInManager : SignInManager<ApplicationUserManager, ApplicationUser>
{
public ApplicationSignInManager(ApplicationUserManager manager, IContextAccessor<HttpContext> contextAccessor) : base(manager, contextAccessor) { }
}
public class ApplicationUser : IdentityUser

View File

@ -54,7 +54,7 @@ public class Startup
#else
services.AddEntityFramework(s => s.AddInMemoryStore());
#endif
services.AddTransient<MusicStoreContext, MusicStoreContext>();
services.AddTransient<MusicStoreContext>();
/*
@ -66,18 +66,26 @@ public class Startup
//Bug: https://github.com/aspnet/Identity/issues/50
services.AddIdentity<ApplicationUser, IdentityRole>(s =>
{
// Turn off password defaults since register error display blows up
s.UsePasswordValidator(() => new PasswordValidator());
//s.UseDbContext(() => context);
//s.UseUserStore(() => new UserStore(context));
s.UseUserStore(() => new InMemoryUserStore<ApplicationUser>());
s.UseUserManager<ApplicationUserManager>();
s.UseRoleStore(() => new InMemoryRoleStore<IdentityRole>());
s.UseRoleManager<ApplicationRoleManager>();
s.AddInMemory();
s.AddUserManager<ApplicationUserManager>();
s.AddRoleManager<ApplicationRoleManager>();
});
services.AddTransient<ApplicationSignInManager>();
// Turn off password defaults since register error display blows up
services.SetupOptions<IdentityOptions>(
options =>
{
options.Password.RequireDigit = false;
options.Password.RequireLowercase = false;
options.Password.RequireNonLetterOrDigit = false;
options.Password.RequireUppercase = false;
options.Password.RequiredLength = 0;
});
});
/* Error page middleware displays a nice formatted HTML page for any unhandled exceptions in the request pipeline.
* Note: ErrorPageOptions.ShowAll to be used only at development time. Not recommended for production.
*/