public GMSignInManager(GMUserManager userManager, IAuthenticationManager authenticationManager) : base(userManager, authenticationManager) { }
//public override async Task<IdentityResult> AddToRoleAsync(int userId, string roles) //{ // //var user = await FindByIdAsync(userId); // GMDbContext context = new GMDbContext(); // var user = context.Users.Find(userId); // var existingRole = user.Roles; // var count = user.Roles.Count(); // for (var i = 0; i < count; i++)// role in existingRole) // { // var result = user.Roles.Remove(existingRole.ElementAt(i)); // context.SaveChanges(); // } // if (!string.IsNullOrEmpty(roles)) // { // int[] roleIds = roles.Split(',').Select(int.Parse).ToArray(); // foreach (var roleId in roleIds) // { // user.Roles.Add(new GMUserRole { RoleId = roleId, UserId = userId }); // context.SaveChanges(); // } // } // return new IdentityResult(); //} public static GMUserManager Create( IdentityFactoryOptions <GMUserManager> options, IOwinContext context) { // *** PASS CUSTOM APPLICATION USER STORE AS CONSTRUCTOR ARGUMENT: var manager = new GMUserManager( new GMUserStore(context.Get <GMDbContext>())); // Configure validation logic for usernames // *** ADD INT TYPE ARGUMENT TO METHOD CALL: manager.UserValidator = new UserValidator <GMUser, int>(manager) { AllowOnlyAlphanumericUserNames = false, RequireUniqueEmail = true }; // Configure validation logic for passwords manager.PasswordValidator = new PasswordValidator { RequiredLength = 6, RequireNonLetterOrDigit = true, RequireDigit = true, RequireLowercase = true, RequireUppercase = true, }; // Configure user lockout defaults manager.UserLockoutEnabledByDefault = true; manager.DefaultAccountLockoutTimeSpan = TimeSpan.FromMinutes(5); manager.MaxFailedAccessAttemptsBeforeLockout = 25; // Register two factor authentication providers. // This application uses Phone and Emails as a step of receiving a // code for verifying the user You can write your own provider and plug in here. // *** ADD INT TYPE ARGUMENT TO METHOD CALL: manager.RegisterTwoFactorProvider("PhoneCode", new PhoneNumberTokenProvider <GMUser, int> { MessageFormat = "Your security code is: {0}" }); // *** ADD INT TYPE ARGUMENT TO METHOD CALL: manager.RegisterTwoFactorProvider("EmailCode", new EmailTokenProvider <GMUser, int> { Subject = "SecurityCode", BodyFormat = "Your security code is {0}" }); manager.EmailService = new EmailService(); manager.SmsService = new SmsService(); var dataProtectionProvider = options.DataProtectionProvider; if (dataProtectionProvider != null) { // *** ADD INT TYPE ARGUMENT TO METHOD CALL: manager.UserTokenProvider = new DataProtectorTokenProvider <GMUser, int>( dataProtectionProvider.Create("Careconnect Identity")); } return(manager); }