public void Run()
        {
            String connectionString        = "Data Source=.;Initial Catalog=App_Dev;User ID=sa;Password=AppDevDefault";
            String appName                 = "AppDev";
            SqlMembershipProvider provider = InitializeAndGetAspMembershipConfig(connectionString, appName);

            String         username = "******";
            MembershipUser user     = provider.GetUser(username, false);

            String changedPwd = "#g%D!HLFKs9m";
            // String reset = user.ResetPassword(); // => error
            // Boolean changed = user.ChangePassword(reset, changedPwd); // => error

            String  reset   = provider.ResetPassword(username, null);
            Boolean changed = provider.ChangePassword(username, reset, changedPwd);

            Dbg(
                new {
                User       = user,
                ResetPwd   = reset,
                ChangedPwd = changedPwd,
                Changed    = changed
            }
                );
        }
Ejemplo n.º 2
0
        /// <summary>
        /// Determina si existe el usuario para un determinado proveedor de seguridad.
        /// </summary>
        /// <param name="userName">Nombre de usuario a chequear</param>
        /// <param name="providerName">Proveedor de seguridad configurado</param>
        /// <returns></returns>
        public static Boolean UserExist(String userName, string providerName)
        {
            SqlMembershipProvider wProvider       = GetSqlMembershipProvider(providerName);
            MembershipUser        wMembershipUser = wProvider.GetUser(userName, false);

            return(wMembershipUser != null);
        }
Ejemplo n.º 3
0
        /// <summary>
        /// Actualiza informacion de un usuario. Incluso el nombre
        /// </summary>
        /// <param name="fwkUser">Usuario con los nuevos datos </param>
        /// <param name="userName">Nombre de usuario a modificar. Nombre del usuario actual</param>
        /// <param name="providerName">Nombre del proveedor de membership</param>
        public static void UpdateUser(User fwkUser, string userName, string providerName)
        {
            #region usa el provider
            SqlMembershipProvider wProvider = GetSqlMembershipProvider(providerName);


            MembershipUser wUser = wProvider.GetUser(userName, false);

            wUser.Comment    = fwkUser.Comment;
            wUser.Email      = fwkUser.Email;
            wUser.IsApproved = fwkUser.IsApproved;

            wProvider.UpdateUser(wUser);
            #endregion

            #region actualizacion personalizada

            StringBuilder str = new StringBuilder(FwkMembershipScripts.User_u);

            str.Replace("[newUserName]", fwkUser.UserName);
            str.Replace("[loweredNewUserName]", fwkUser.UserName.ToLower());
            str.Replace("[userName]", userName.ToLower());
            using (SqlConnection cnn = new SqlConnection(System.Configuration.ConfigurationManager.ConnectionStrings[GetProvider_ConnectionStringName(wProvider.Name)].ConnectionString))
                using (SqlCommand cmd = new SqlCommand(str.ToString(), cnn))
                {
                    cmd.CommandType = CommandType.Text;

                    cmd.ExecuteNonQuery();
                }



            str = null;
            #endregion
        }
Ejemplo n.º 4
0
        public void ProfileSystem_UnitTest_CreateUserWithAccount()
        {
            Account act;
            SqlMembershipProvider provider;
            NameValueCollection   collection;
            string         userName;
            MembershipUser user;

            //first initialize the membership objects
            provider   = new SqlMembershipProvider();
            collection = new NameValueCollection();
            collection.Add("applicationName", "eCommerceFramework");
            collection.Add("name", "CMSMembershipProvider");
            collection.Add("requiresQuestionAndAnswer", "false");
            collection.Add("connectionStringName", "MembershipSqlConnection");
            provider.Initialize(collection["name"], collection);
            userName = "******";

            try
            {
                // Retrieve user
                user = provider.GetUser(userName, false);

                if (user == null)
                {
                    // Following exception raised at Membership.CreateUser (can't step in either for whatever reason)
                    // System.NotSupportedException: Specified method is not supported.
                    user = Membership.CreateUser(userName, userName, userName + "@mediachase.com");
                    act  = ProfileContext.Current.CreateAccountForUser(user);
                }
                else
                {
                    act = ProfileContext.Current.GetAccount(user.ProviderUserKey.ToString());
                }

                // Assert that account is retrieved.
                Assert.IsNotNull(act, "Failed: Account associated with user could not be retrieved.\n");
                Console.WriteLine("Created account with ID: {0}.\n", act.AccountId);

                // Delete created account
                Console.WriteLine("Deleting user {0}.", act.AccountId);
                act.Delete();
                act.AcceptChanges();
                Assert.IsTrue(act.ObjectState == MetaObjectState.Deleted, "Failed: Account was not deleted.\n");

                // Delete new user, assert that it happened.
                Assert.IsTrue(provider.DeleteUser(userName, true), "Failed: User was not deleted.\n");
            }
            catch (Exception exc)
            {
                // Clean-up
                provider.DeleteUser(userName, true);

                throw exc;
            }
        }
Ejemplo n.º 5
0
        /// <summary>
        /// Obtiene un objeto <see cref="MembershipUser"/> por medio del SqlMembershipProvider correspondiente
        /// </summary>
        /// <param name="userName">Nombre de usuario</param>
        /// <param name="providerName">Nombre del proveedor de membership</param>
        /// <returns></returns>
        static MembershipUser GetMembershipUser(String userName, string providerName)
        {
            SqlMembershipProvider wProvider       = GetSqlMembershipProvider(providerName);
            MembershipUser        wMembershipUser = wProvider.GetUser(userName, false);

            // block the user
            if (wMembershipUser != null)
            {
                return(wMembershipUser);
            }
            else
            {
                Fwk.Exceptions.TechnicalException te = new TechnicalException(string.Format(Fwk.Security.Properties.Resource.User_NotExist, userName));
                ExceptionHelper.SetTechnicalException <FwkMembership>(te);
                te.ErrorId = "4005";
                throw te;
            }
        }
Ejemplo n.º 6
0
        /// <summary>
        /// Verifican que usuario y password sean validos
        /// </summary>
        /// <param name="userName"></param>
        /// <param name="password"></param>
        /// <param name="providerName">Nombre del proveedor de membership</param>
        /// <returns></returns>
        public static Boolean ValidateUser(string userName, string password, string providerName)
        {
            SqlMembershipProvider wProvider = GetSqlMembershipProvider(providerName);
            TechnicalException    te        = null;
            bool isValid = wProvider.ValidateUser(userName, password);

            if (!isValid)
            {
                MembershipUser user = wProvider.GetUser(userName, true);
                if (user != null)
                {
                    //User exists
                    if (!user.IsApproved)
                    {
                        //Account Unapproved
                        te         = new TechnicalException("Your account is not approved.");
                        te.ErrorId = "4011";
                        throw te;
                    }
                    else if (user.IsLockedOut)
                    {
                        //Account Locked

                        te         = new TechnicalException("Your account is locked.");
                        te.ErrorId = "4012";
                        throw te;
                    }
                    else
                    {
                        te         = new TechnicalException("Invalid username or password.");
                        te.ErrorId = "4013";
                        throw te;
                    }
                }
                else
                {
                    te         = new TechnicalException("Invalid username or password.");
                    te.ErrorId = "4013";
                    throw te;
                }
            }
            return(isValid);
        }
        static void ResetAction(String connString)
        {
            String appName = ExtConsole
                             .Create()
                             .LabelWith("App Name: ")
                             .GetString(new SimpleStringValidator("Same as the one from your app.config / web.config"));

            String hashAlgo = ExtConsole
                              .Create()
                              .LabelWith("Hash Algo: (MD5, SHA1, SHA512) ")
                              .GetString(new SimpleStringValidator("Choose one: MD5, SHA1, SHA512"));

            String username = ExtConsole
                              .Create()
                              .LabelWith("Username: "******"Input Username you want to reset"));

            String pwd = ExtConsole
                         .Create()
                         .LabelWith("Password: "******"Input new Password"));

            SqlMembershipProvider provider = MembershipService.InitializeAndGetAspMembershipConfig(connString, appName, hashAlgo);
            MembershipUser        user     = provider.GetUser(username, false);

            if (user == null)
            {
                throw new InvalidOperationException("User not found.");
            }

            Console.WriteLine($"User '{username}' found.");

            String reset = provider.ResetPassword(username, null);

            provider.ChangePassword(username, reset, pwd);
            UpdateUserLoginProperty(connString, username);
        }
Ejemplo n.º 8
0
        /// <summary>
        ///
        /// </summary>
        /// <param name="userName"></param>
        /// <param name="password"></param>
        /// <param name="providerName"></param>
        /// <returns></returns>
        public static MembershipEnums CheckUserStatus(string userName, string password, string providerName)
        {
            MembershipEnums       status    = MembershipEnums.AccountUsernameAndPassword_IS_OK;
            SqlMembershipProvider wProvider = GetSqlMembershipProvider(providerName);

            bool isValid = wProvider.ValidateUser(userName, password);

            if (!isValid)
            {
                MembershipUser user = wProvider.GetUser(userName, true);
                if (user != null)
                {
                    //User exists
                    if (!user.IsApproved)
                    {
                        //Account Unapproved
                        status = MembershipEnums.AccountIsNotApproved;
                    }
                    else if (user.IsLockedOut)
                    {
                        //Account Locked
                        status = MembershipEnums.AccountIsLockedOut;
                    }
                    else
                    {
                        //Invalid username or password
                        status = MembershipEnums.InvalidUsernameOrPassword;
                    }
                }
                else
                {
                    status = MembershipEnums.InvalidUsernameOrPassword;
                }
            }
            return(status);
        }