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 } ); }
/// <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); }
/// <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 }
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; } }
/// <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; } }
/// <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); }
/// <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); }