public ActionResult Register( RegisterViewModel model ) { if( ModelState.IsValid ) { using( var ctx = new NwdAuthContext() ) { if( ctx.Users.Any( m => m.Username == model.Username ) ) ModelState.AddModelError( "Username", "Ce nom d'utilisateur existe déjà !" ); else { try { User u = ctx.Users.Add( new User { Username = model.Username, Name = "NwdProvider", Password = AuthenticationUtils.HashPassword( model.Password ), Email = model.Email, CreationDate = DateTime.UtcNow } ); u.Roles.Add( ctx.Roles.Where( r => r.RoleName == "User" ).FirstOrDefault() ); ctx.SaveChanges(); return View( "RegisterSuccess" ); } catch( MembershipCreateUserException ex ) { ModelState.AddModelError( "", ex.Message ); } } } } return View( model ); }
public override string[] GetUsersInRole( string roleName ) { using( var c = new NwdAuthContext() ) { return c.Roles.Where( r => r.RoleName == roleName ).SelectMany( u => u.Users.Select( m => m.Username ) ).ToArray(); } }
public override string[] GetRolesForUser( string username ) { using( var c = new NwdAuthContext() ) { return c.Users.Where( m => m.Username == username ).SelectMany( m => m.Roles ).Select( m => m.RoleName ).ToArray(); } }
public override string[] GetAllRoles() { using( var c = new NwdAuthContext() ) { return c.Roles.Select( m => m.RoleName ).ToArray(); } }
public void Database_Should_Always_Be_Created() { Database.SetInitializer( new DropCreateDatabaseAlways<NwdBackOfficeContext>() ); Database.SetInitializer( new DropCreateDatabaseAlways<NwdFrontOfficeContext>() ); Database.SetInitializer( new DropCreateDatabaseAlways<NwdAuthContext>() ); using( var b = new NwdBackOfficeContext() ) { b.Database.Initialize( true ); Debug.Assert( b.Database.Exists() ); Console.WriteLine( b.Database.Connection.ConnectionString ); } using( var f = new NwdFrontOfficeContext() ) { f.Database.Initialize( true ); Debug.Assert( f.Database.Exists() ); Console.WriteLine( f.Database.Connection.ConnectionString ); } using( var a = new NwdAuthContext() ) { a.Database.Initialize( true ); Debug.Assert( a.Database.Exists() ); Console.WriteLine( a.Database.Connection.ConnectionString ); a.Roles.Add( new Role { RoleName = "User" } ); Role r = a.Roles.Add( new Role { RoleName = "Administrator" } ); Nwd.Authentication.Model.User u = a.Users.Add( new Nwd.Authentication.Model.User { Username = "******", Name = "NwdProvider", Comment = "user admin", IsApproved = true, IsLockedOut = false, Password = AuthenticationUtils.HashPassword( "test" ), CreationDate = DateTime.UtcNow } ); u.Roles.Add( r ); a.SaveChanges(); } }
public override void CreateRole( string roleName ) { using( var c = new NwdAuthContext() ) { Role r = c.Roles.Where( m => m.RoleName == roleName ).FirstOrDefault(); if( r != null ) return; c.Roles.Add( new Role() { RoleName = roleName } ); } }
public override bool DeleteRole( string roleName, bool throwOnPopulatedRole ) { using( var c = new NwdAuthContext() ) { Role r = c.Roles.Where( m => m.RoleName == roleName ).FirstOrDefault(); if( r == null ) return false; c.Roles.Remove( r ); c.SaveChanges(); return true; } }
public override void UpdateUser( MembershipUser user ) { using( var c = new NwdAuthContext() ) { User u = c.Users.Where( m => m.Username == user.UserName ).FirstOrDefault(); if( u == null ) return; c.Users.Attach( u ); if( user.Email != u.Email ) { u.Email = user.Email; c.Entry( u ).Property( m => m.Email ).IsModified = true; } if( user.ProviderName != u.Name ) { u.Name = user.ProviderName; c.Entry( u ).Property( m => m.Email ).IsModified = true; } c.SaveChanges(); } }
public User GetUser( string username, NwdAuthContext context ) { return context.Users.Where( m => m.Username == username ).FirstOrDefault(); }
public override MembershipUser GetUser( object providerUserKey, bool isOnlineUser ) { using( var c = new NwdAuthContext() ) { User u = c.Users.Where( m => m.Id == (int)providerUserKey ).FirstOrDefault(); if( u == null ) return null; return GetMembershipUserFromUser( u ); } }
public override MembershipUser GetUser( string username, bool isOnlineUser ) { using( var c = new NwdAuthContext() ) { User u = GetUser( username, c ); if( u == null ) return null; return GetMembershipUserFromUser( u ); } }
public override string GetPassword( string username, string answer ) { using (var c = new NwdAuthContext()) { return c.Users.Where(m => m.Username == username).Select( m => m.Password).FirstOrDefault(); } }
public override bool DeleteUser( string username, bool deleteAllRelatedData ) { using( var c = new NwdAuthContext() ) { MembershipUser u = GetUser( username, false ); if( u == null ) return false; return true; } }
public override MembershipUser CreateUser( string username, string password, string email, string passwordQuestion, string passwordAnswer, bool isApproved, object providerUserKey, out MembershipCreateStatus status ) { if( username == null || username.Length > 0 ) { status = MembershipCreateStatus.InvalidEmail; return null; } if( password == null || password.Length > 0 ) { status = MembershipCreateStatus.InvalidPassword; return null; } using( var c = new NwdAuthContext() ) { if( GetUser( username, c ) != null ) { status = MembershipCreateStatus.DuplicateUserName; return null; } User u = new User { Username = username, Password = password, Email = email }; c.Users.Add( u ); c.SaveChanges(); status = MembershipCreateStatus.Success; return GetUser( username, false ); } }
public override bool IsUserInRole( string username, string roleName ) { using( var c = new NwdAuthContext() ) { return c.Roles.Where( r => r.RoleName == roleName ).SelectMany( u => u.Users.Where( m => m.Username == username ) ).Any(); } }
public override bool ValidateUser( string username, string password ) { using( var c = new NwdAuthContext() ) { var user = GetUser( username, false ); if( user == null ) return false; if( CheckPassword( password, user.GetPassword() ) ) return true; return false; } }
public override bool ChangePassword( string username, string oldPassword, string newPassword ) { using( var c = new NwdAuthContext() ) { User u = GetUser( username, c ); if( u == null ) return false; if( u.Password != EncodePassword( oldPassword ) ) return false; u.Password = EncodePassword( newPassword ); c.Users.Attach( u ); c.Entry( u ).Property( m => m.Password ).IsModified = true; c.SaveChanges(); return true; } }
public override MembershipUserCollection FindUsersByEmail( string emailToMatch, int pageIndex, int pageSize, out int totalRecords ) { using( var c = new NwdAuthContext() ) { IQueryable<User> u = c.Users.Where( m => m.Email == emailToMatch ); totalRecords = u.Count(); //return u.Skip( pageIndex * pageSize ).Take( pageSize ); throw new NotImplementedException(); } }
public override MembershipUserCollection GetAllUsers( int pageIndex, int pageSize, out int totalRecords ) { MembershipUserCollection muc = new MembershipUserCollection(); using( var c = new NwdAuthContext() ) { IQueryable<User> listUser = c.Users; totalRecords = listUser.Count(); foreach( User m in listUser.Skip( pageIndex * pageSize ).Take( pageSize ) ) muc.Add( GetMembershipUserFromUser( m ) ); return muc; } }
public override bool RoleExists( string roleName ) { using( var c = new NwdAuthContext() ) { return c.Roles.Where( r => r.RoleName == roleName ).Any(); } }