I am working on a solution based on the Microsoft.AspNet.Identity.Samples V2.1.0-alpha1) and need the same thing.
I have custom Identity classes as I need to have a User PK of type Int.
So, in MyCustomUserManager I set user.Active:
public override async Task<IdentityResult> DeleteAsync(CodeProjectUser user)
// return base.DeleteAsync(user);
user.Active = false;
var result = await base.UpdateAsync(user);
if (result != IdentityResult.Success)
return await UpdateSecurityStampAsync(user.Id);
and in MyCustomSignInManager I check user.Active. I'm also looking up user by email as I don't store the email in both UserName and Email but want to sign in by Email.:
// Uses the users email as the user identifier instead of the userName.
public override async Task<SignInStatus> PasswordSignInAsync(string email, string password, bool isPersistent, bool shouldLockout)
var user = await UserManager.FindByEmailAsync(email);
if (user == null || !user.Active)
return await base.PasswordSignInAsync(user.UserName, password, isPersistent, shouldLockout);