public override MembershipUser GetUser(string username, bool boolUserIsOnline) { try { //Aceder à base de dados e devolver a informação do utilizador DataTable userDataTable = UserDataAccess.GetUserByUsername(username); //Verificar se houve valores devolvidos da BD, ou seja, verificar se o utilizador existe if (userDataTable.Rows.Count == 1) { string name = Convert.ToString(userDataTable.Rows[0]["Nome"]); string morada = Convert.ToString(userDataTable.Rows[0]["Morada"]); string contacto = Convert.ToString(userDataTable.Rows[0]["Contacto"]); bool isActive = Convert.ToBoolean(userDataTable.Rows[0]["isActive"]); string PreferedLanguage = Convert.ToString(userDataTable.Rows[0]["Lingua"]); //Declarar novo objecto MembershipUser CustomMembershipUser user = new CustomMembershipUser(username, name, morada, contacto, isActive, PreferedLanguage); return user; } return null; } catch (DataException ex) { throw new DataException(ex.ToString()); } }
public CustomMembershipUser CreateUser(string Nome, string Morada, string Contacto, string Email, int Lingua, string EmailMoodle, int TipoUtilizador, string Username, string Password, out MembershipCreateStatus status) { //Declarar variável indicadora/descritiva de possiveis erros string outErrorMessage = string.Empty; CustomMembershipUser newUser = new CustomMembershipUser(); //Aceder à base de dados e devolver a informação do utilizador DataTable userDataTable = UserDataAccess.GetUserByUsername(Username); //Verificar se já existe um utilizador com o mesmo username //Verificar se houve valores devolvidos da BD, ou seja, verificar se o utilizador existe if (userDataTable.Rows.Count > 0) { status = MembershipCreateStatus.DuplicateUserName; return null; } //Validar requisitos mínimos para a password //Declarar evento de validação ValidatePasswordEventArgs args = new ValidatePasswordEventArgs(Username, Password, true); //Chamar o evento da classe-pai Membership base.OnValidatingPassword(args); //Verificar se a password é válida // Validate the password if (!isValidPassword(Password)) { status = MembershipCreateStatus.InvalidPassword; return null; } //Converter Password string convertedPassword = ConvertPasswordForStorage(Password); //Esta password pode ser encrypted, clear ou hashed try { //Executar o comando e devolver o número de registos afectados int affectedRows = UserDataAccess.InsertUser(Nome, Morada, Contacto, Email, Lingua, EmailMoodle, TipoUtilizador, Username,convertedPassword); //Devolver erro caso não se consiga inserir registo if (affectedRows <= 0) { status = MembershipCreateStatus.ProviderError; return null; } //Alterar o estado do processo status = MembershipCreateStatus.Success; //Devolver o novo utilizador return newUser; } catch (Exception) { //Alterar o estado do processo status = MembershipCreateStatus.ProviderError; return null; } }