示例#1
0
        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());
            }
        }
示例#2
0
        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;
            }
        }