public void CreateOAuthAccount(string provider, string providerUserId, IFlexMembershipUser user)
 {
     var existingUser = _userStore.GetUserByUsername(user.Username);
     if(existingUser == null)
     {
         _userStore.Add(user);
     }
     _userStore.CreateOAuthAccount(provider, providerUserId, existingUser ?? user);
 }
Exemplo n.º 2
0
        /// <summary>
        /// Gets the user name from open auth.
        /// </summary>
        /// <param name="provider">The provider.</param>
        /// <param name="providerUserId">The provider user id.</param>
        /// <returns></returns>
        public string GetUserNameFromOpenAuth(string provider, string providerUserId)
        {
            IFlexMembershipUser user = _userStore.GetUserByOAuthProvider(provider, providerUserId);

            if (user != null)
            {
                return(user.Username);
            }
            return(String.Empty);
        }
        public void CreateOAuthAccount(string provider, string providerUserId, IFlexMembershipUser user)
        {
            var existingUser = _userStore.GetUserByUsername(user.Username);

            if (existingUser == null)
            {
                _userStore.Add(user);
            }
            _userStore.CreateOAuthAccount(provider, providerUserId, existingUser ?? user);
        }
Exemplo n.º 4
0
        public IFlexMembershipUser Save(IFlexMembershipUser user)
        {
            var existingUser = _session.Query <TUser>().SingleOrDefault(u => u.Username == user.Username);

            foreach (var property in user.GetType().GetProperties().Where(p => p.CanWrite))
            {
                property.SetValue(existingUser, property.GetValue(user));
            }
            _session.SaveChanges();
            return(user);
        }
        public void CreateAccount(IFlexMembershipUser user)
        {
            var existingUser = _userStore.GetUserByUsername(user.Username);
            if (existingUser != null)
            {
                throw new MembershipCreateUserException("Cannot register with a duplicate username");
            }

            user.Salt = user.Salt ?? _encoder.GenerateSalt();
            user.Password = _encoder.Encode(user.Password, user.Salt);
            _userStore.Add(user);
        }
Exemplo n.º 6
0
        public IFlexMembershipUser Save(IFlexMembershipUser user)
        {
            TUser existingUser = _userCollection.AsQueryable().SingleOrDefault(u => u.Username == user.Username);

            foreach (PropertyInfo property in user.GetType().GetProperties().Where(p => p.CanWrite))
            {
                property.SetValue(existingUser, property.GetValue(user));
            }

            _userCollection.Save(existingUser);
            return(user);
        }
        public void CreateAccount(IFlexMembershipUser user)
        {
            var existingUser = _userStore.GetUserByUsername(user.Username);

            if (existingUser != null)
            {
                throw new MembershipCreateUserException("Cannot register with a duplicate username");
            }

            user.Salt     = user.Salt ?? _encoder.GenerateSalt();
            user.Password = _encoder.Encode(user.Password, user.Salt);
            _userStore.Add(user);
        }
Exemplo n.º 8
0
        /// <summary>
        ///   Sets the local password for a user
        /// </summary>
        /// <param name="username"> The username. </param>
        /// <param name="newPassword"> The new password. </param>
        public void SetLocalPassword(string username, string newPassword)
        {
            IFlexMembershipUser user = _userStore.GetUserByUsername(username);

            if (!String.IsNullOrEmpty(user.Password))
            {
                throw new FlexMembershipException("SetLocalPassword can only be used on accounts that currently don't have a local password.");
            }

            user.Salt     = _encoder.GenerateSalt();
            user.Password = _encoder.Encode(newPassword, user.Salt);
            _userStore.Save(user);
        }
Exemplo n.º 9
0
        /// <summary>
        ///   Creates an account.
        /// </summary>
        /// <param name="user"> The user. </param>
        public void CreateAccount(IFlexMembershipUser user)
        {
            IFlexMembershipUser existingUser = _userStore.GetUserByUsername(user.Username);

            if (existingUser != null)
            {
                throw new FlexMembershipException(FlexMembershipStatus.DuplicateUserName);
            }

            user.Salt     = user.Salt ?? _encoder.GenerateSalt();
            user.Password = _encoder.Encode(user.Password, user.Salt);
            _userStore.Add(user);
        }
Exemplo n.º 10
0
        /// <summary>
        ///   Changes the password for a user
        /// </summary>
        /// <param name="username"> The username. </param>
        /// <param name="oldPassword"> The old password. </param>
        /// <param name="newPassword"> The new password. </param>
        /// <returns> </returns>
        public bool ChangePassword(string username, string oldPassword, string newPassword)
        {
            IFlexMembershipUser user = _userStore.GetUserByUsername(username);
            string encodedPassword   = _encoder.Encode(oldPassword, user.Salt);

            if (!encodedPassword.Equals(user.Password))
            {
                return(false);
            }

            user.Password = _encoder.Encode(newPassword, user.Salt);
            _userStore.Save(user);
            return(true);
        }
Exemplo n.º 11
0
        /// <summary>
        ///   Generates the password reset token for a user
        /// </summary>
        /// <param name="username"> The username. </param>
        /// <param name="tokenExpirationInMinutesFromNow"> The token expiration in minutes from now. </param>
        /// <returns> </returns>
        public string GeneratePasswordResetToken(string username, int tokenExpirationInMinutesFromNow = 1440)
        {
            IFlexMembershipUser user = _userStore.GetUserByUsername(username);

            if (user == null)
            {
                throw new FlexMembershipException(FlexMembershipStatus.InvalidUserName);
            }

            user.PasswordResetToken           = GenerateToken();
            user.PasswordResetTokenExpiration = DateTime.Now.AddMinutes(tokenExpirationInMinutesFromNow);
            _userStore.Save(user);

            return(user.PasswordResetToken);
        }
Exemplo n.º 12
0
        /// <summary>
        ///   Resets the password for the supplied
        ///   <paramref name="passwordResetToken" />
        /// </summary>
        /// <param name="passwordResetToken"> The password reset token to perform the lookup on. </param>
        /// <param name="newPassword"> The new password for the user. </param>
        /// <returns> </returns>
        public bool ResetPassword(string passwordResetToken, string newPassword)
        {
            IFlexMembershipUser user = _userStore.GetUserByPasswordResetToken(passwordResetToken);

            if (user == null)
            {
                return(false);
            }

            if (String.IsNullOrEmpty(user.Salt))
            {
                user.Salt = _encoder.GenerateSalt();
            }
            user.Password = _encoder.Encode(newPassword, user.Salt);
            _userStore.Save(user);

            return(true);
        }
Exemplo n.º 13
0
        /// <summary>
        /// Determines whether the provided <paramref name="username"/> and
        /// <paramref name="password"/> combination is valid
        /// </summary>
        /// <param name="username">The username.</param>
        /// <param name="password">The password.</param>
        /// <param name="rememberMe">
        /// if set to <c>true</c> [remember me].
        /// </param>
        /// <returns>
        ///
        /// </returns>
        public bool Login(string username, string password, bool rememberMe = false)
        {
            IFlexMembershipUser user = _userStore.GetUserByUsername(username);

            if (user == null)
            {
                return(false);
            }

            string encodedPassword = _encoder.Encode(password, user.Salt);
            bool   passed          = encodedPassword.Equals(user.Password);

            if (passed)
            {
                _applicationEnvironment.IssueAuthTicket(username, rememberMe);
                return(true);
            }
            return(false);
        }
Exemplo n.º 14
0
        /// <summary>
        ///   Dissassociates the OAuth account for a userid.
        /// </summary>
        /// <param name="provider"> The provider. </param>
        /// <param name="providerUserId"> The provider user id. </param>
        /// <returns> </returns>
        public bool DisassociateOAuthAccount(string provider, string providerUserId)
        {
            IFlexMembershipUser user = _userStore.GetUserByOAuthProvider(provider, providerUserId);

            if (user == null)
            {
                return(false);
            }
            IEnumerable <OAuthAccount> accounts = _userStore.GetOAuthAccountsForUser(user.Username);

            if (HasLocalAccount(user.Username))
            {
                return(_userStore.DeleteOAuthAccount(provider, providerUserId));
            }

            if (accounts.Count() > 1)
            {
                return(_userStore.DeleteOAuthAccount(provider, providerUserId));
            }

            return(false);
        }
Exemplo n.º 15
0
        /// <summary>
        ///   Determines whether the specific <paramref name="username" /> has a
        ///   local account
        /// </summary>
        /// <param name="username"> The username. </param>
        /// <returns> <c>true</c> if the specified username has a local account; otherwise, <c>false</c> . </returns>
        public bool HasLocalAccount(string userName)
        {
            IFlexMembershipUser user = _userStore.GetUserByUsername(userName);

            return(user != null && !String.IsNullOrEmpty(user.Password));
        }
Exemplo n.º 16
0
        public bool Exists(string userName)
        {
            IFlexMembershipUser user = _userStore.GetUserByUsername(userName);

            return(user != null);
        }
Exemplo n.º 17
0
 public IFlexMembershipUser Add(IFlexMembershipUser user)
 {
     _userCollection.Save(user);
     return(user);
 }
Exemplo n.º 18
0
        public IFlexMembershipUser CreateOAuthAccount(string provider, string providerUserId, IFlexMembershipUser user)
        {
            var account = new FlexOAuthAccount {
                Provider = provider, ProviderUserId = providerUserId
            };

            if (user.OAuthAccounts == null)
            {
                user.OAuthAccounts = new Collection <FlexOAuthAccount>();
            }
            user.OAuthAccounts.Add(account);
            _userCollection.Save(user);

            return(user);
        }
        /// <summary>
        ///   Creates an account.
        /// </summary>
        /// <param name="user"> The user. </param>
        public void CreateAccount(IFlexMembershipUser user)
        {
            IFlexMembershipUser existingUser = _userStore.GetUserByUsername(user.UserName);
            if (existingUser != null)
            {
                throw new FlexMembershipException(FlexMembershipStatus.DuplicateUserName);
            }

            user.Salt = user.Salt ?? _encoder.GenerateSalt();
            user.Password = _encoder.Encode(user.Password, user.Salt);
            _userStore.Add(user);
        }
 public void AddCredentialsToAccount(IFlexMembershipUser user)
 {
     user.Salt = user.Salt ?? _encoder.GenerateSalt();
     user.Password = _encoder.Encode(user.Password, user.Salt);
     _userStore.Save(user);
 }
 public void UpdateAccount(IFlexMembershipUser user)
 {
     _userStore.Save(user);
 }
Exemplo n.º 22
0
 public IFlexMembershipUser CreateOAuthAccount(string provider, string providerUserId, IFlexMembershipUser user)
 {
     user = _context.Set <TUser>().Single(u => u.Username == user.Username);
     if (user.OAuthAccounts == null)
     {
         user.OAuthAccounts = new EntityCollection <FlexOAuthAccount>();
     }
     user.OAuthAccounts.Add(new FlexOAuthAccount()
     {
         Provider = provider, ProviderUserId = providerUserId
     });
     _context.SaveChanges();
     return(user);
 }
Exemplo n.º 23
0
 public IFlexMembershipUser Add(IFlexMembershipUser user)
 {
     _session.Store(user);
     _session.SaveChanges();
     return(user);
 }
 public IFlexMembershipUser Save(IFlexMembershipUser user)
 {
     _context.Entry(user).State = EntityState.Modified;
     _context.SaveChanges();
     return(user);
 }
 public IFlexMembershipUser Add(IFlexMembershipUser user)
 {
     _context.Set <TUser>().Add((TUser)user);
     _context.SaveChanges();
     return(user);
 }
 public void UpdateAccount(IFlexMembershipUser user)
 {
     _userStore.Save(user);
 }
Exemplo n.º 27
0
 public void AddCredentialsToAccount(IFlexMembershipUser user)
 {
     user.Salt     = user.Salt ?? _encoder.GenerateSalt();
     user.Password = _encoder.Encode(user.Password, user.Salt);
     _userStore.Save(user);
 }