public CreateUser ( string userName, string password, string email, string passwordQuestion, string passwordAnswer, bool isApproved, object providerUserKey, MembershipCreateStatus, &status ) : MembershipUser, | ||
userName | string | |
password | string | |
string | ||
passwordQuestion | string | |
passwordAnswer | string | |
isApproved | bool | |
providerUserKey | object | |
status | MembershipCreateStatus, | |
return | MembershipUser, |
/// <summary> /// Crea un usuario /// </summary> /// <param name="userName">Nombre de usuario, nombre de logging</param> /// <param name="password">Clave</param> /// <param name="email">Correo electronico</param> /// <param name="passwordQuestion">Pregunta secreta</param> /// <param name="passwordAnswer">Respuesta secreta</param> /// <param name="isApproved">True si esta aprovado </param> /// <param name="pStatus"><see cref="MembershipCreateStatus"/></param> /// <param name="providerName">Nombre del proveedor de membership</param> /// <returns><see cref="User"/></returns> public static User CreateUser(string userName, string password, string email, string passwordQuestion, string passwordAnswer, Boolean isApproved, out System.Web.Security.MembershipCreateStatus pStatus, string providerName) { SqlMembershipProvider wProvider = GetSqlMembershipProvider(providerName); User wUsuario = null; System.Web.Security.MembershipUser newUser = wProvider.CreateUser(userName, password, email, passwordQuestion, passwordAnswer, isApproved, Guid.NewGuid(), out pStatus); if (newUser != null) { wUsuario = new User(newUser); } return(wUsuario); }
static void CreateAction(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 create")); String pwd = ExtConsole .Create() .LabelWith("Password: "******"Input new Password")); String email = ExtConsole .Create() .LabelWith("Email: ") .GetString(new SimpleEmailValidator("Email format is invalid")); Console.WriteLine("Roles:"); using (var db = new Database(connString, true)) { db.Query <SimpleResult>(@" BEGIN SET NOCOUNT ON SELECT RoleName Result FROM dbo.aspnet_Roles SET NOCOUNT OFF END") .ToList() .ForEach(result => Console.WriteLine($" > {result.Result}")); } String role = ExtConsole .Create() .LabelWith("Role: ") .GetString(new SimpleStringValidator("Choose one from above")); SqlMembershipProvider provider = MembershipService.InitializeAndGetAspMembershipConfig(connString, appName, hashAlgo); MembershipUser user = provider.CreateUser(username, pwd, email, "Your account might have technical difficulties. Please ask your Administrator.", "TECHNICAL DIFFICULTIES BECAUSE OF RESET", true, Guid.NewGuid(), out MembershipCreateStatus status); IDictionary <MembershipCreateStatus, String> statusMessage = new Dictionary <MembershipCreateStatus, String> { [MembershipCreateStatus.DuplicateUserName] = "Username already exists. Please enter a different user name.", [MembershipCreateStatus.DuplicateEmail] = "A username for that email address already exists. Please enter a different email address.", [MembershipCreateStatus.InvalidPassword] = "The password provided is invalid. Please enter a valid password value.", [MembershipCreateStatus.InvalidEmail] = "The email address provided is invalid. Please check the value and try again.", [MembershipCreateStatus.InvalidAnswer] = "The password retrieval answer provided is invalid. Please check the value and try again.", [MembershipCreateStatus.InvalidQuestion] = "The password retrieval question provided is invalid. Please check the value and try again.", [MembershipCreateStatus.InvalidUserName] = "The user name provided is invalid. Please check the value and try again.", [MembershipCreateStatus.ProviderError] = "The authentication provider returned an error. Please verify your entry and try again. If the problem persists, please contact your system administrator.", [MembershipCreateStatus.UserRejected] = "The user creation request has been canceled. Please verify your entry and try again. If the problem persists, please contact your system administrator.", [MembershipCreateStatus.Success] = "the user creation done in success." }; if (!statusMessage.ContainsKey(status)) { throw new InvalidOperationException("An unknown error occurred. Please verify your entry and try again. If the problem persists, please contact your system administrator."); } Console.WriteLine(statusMessage[status]); using (var db = new Database(connString, true)) { Int32 result = db.NQueryScalar <Int32>(@" BEGIN SET NOCOUNT ON SELECT COUNT(0) FROM dbo.aspnet_Roles WHERE LoweredRoleName = @RoleName SET NOCOUNT OFF END", new { RoleName = role.ToLowerInvariant() }); if (result < 1) { throw new InvalidOperationException($"Role {role} isn't found anywhere."); } } using (var db = new Database(connString, true)) { String result = db.NQueryScalar <String>(@" BEGIN SET NOCOUNT ON BEGIN TRAN AssignRole BEGIN TRY DECLARE @@message VARCHAR(MAX) DECLARE @@roleId UNIQUEIDENTIFIER SELECT TOP 1 @@roleId = RoleId FROM dbo.aspnet_Roles WHERE LoweredRoleName = @RoleName INSERT INTO dbo.aspnet_UsersInRoles (RoleId, UserId) VALUES (@@roleId, @UserId) COMMIT TRAN AssignRole SET @@message = 'S|Finish' END TRY BEGIN CATCH ROLLBACK TRAN AssignRole SET @@message = 'E|' + CAST(ERROR_LINE() AS VARCHAR) + ': ' + ERROR_MESSAGE() END CATCH SET NOCOUNT OFF SELECT @@message [Message] END", new { UserId = user.ProviderUserKey.ToString(), RoleName = role.ToLowerInvariant() }); result.AsActionResponseViewModel(); } UpdateUserLoginProperty(connString, username); }