Exemple #1
0
 /// <summary>
 /// default cast for Membership.GetUser method
 /// use to manage MembershipProvider that not returns PgnUser
 /// </summary>
 /// <param name="username"></param>
 /// <returns>PgnUser or null if not exists</returns>
 public static PgnUser GetUser(string username)
 {
     PgnUser user = null;
     var member = Membership.GetUser(username);
     if (member is PgnUser)
         user = (PgnUser)member;
     else
     {
         user = new PgnUser("PgnUserProvider",
             0, username, "", "", "", "", true, false,
             DateTime.MinValue, DateTime.MinValue, DateTime.MinValue,
             DateTime.MinValue, DateTime.MinValue);
     }
     return user;
 }
        public PgnUser CreateUser(
                        PgnUser newUser,
                        string username,
                        string password,
                        string email,
                        string passwordQuestion,
                        string passwordAnswer,
                        bool isApproved,
                        object providerUserKey,
                        out MembershipCreateStatus status)
        {
            ValidatePasswordEventArgs args = new ValidatePasswordEventArgs(username, password, true);
            OnValidatingPassword(args);
            if (args.Cancel)
            {
                status = MembershipCreateStatus.InvalidPassword;
                return null;
            }

            if (RequiresUniqueEmail && GetUserNameByEmail(email) != "")
            {
                status = MembershipCreateStatus.DuplicateEmail;
                return null;
            }

            MembershipUser u = GetUser(username, false);

            if (u == null)
            {
                DateTime createDate = DateTime.Now;

                //use identity as pkey
                //if (providerUserKey == null)
                //{
                //    providerUserKey = Guid.NewGuid();
                //}
                //else
                //{
                //    if (!(providerUserKey is Guid))
                //    {
                //        status = MembershipCreateStatus.InvalidProviderUserKey;
                //        return null;
                //    }
                //}

                DbProviderFactory myProv = Database.ProviderFactory;
                DbConnection myConn = myProv.CreateConnection();
                DbCommand myCmd = myConn.CreateCommand();
                string sSql = "";

                try
                {
                    myConn.ConnectionString = connectionString;
                    myConn.Open();
                    myCmd.Connection = myConn;

                    //PKID
                    sSql = "INSERT INTO " + tableName + " "
                    + " (/*[Id],*/ Username, ApplicationName, Email, Comment, "
                    + " Password, PasswordQuestion, PasswordAnswer, IsApproved, "
                    + " LastActivityDate, LastPasswordChangedDate, CreationDate, "
                    + " IsLockedOut, LastLockedOutDate,"
                    + " FailedPasswordAttemptCount, FailedPasswordAttemptWindowStart, "
                    + " FailedPasswordAnswerAttemptCount, FailedPasswordAnswerAttemptWindowStart, "
                    + " Enabled, AccessCode, AccessLevel, "
                    + " Sex, CompanyName, Vat, Ssn, FirstName, SecondName, "
                    + " Address1, Address2, City, [State], ZipCode, "
                    + " Nation, Tel1, Mobile1, Website1, AllowMessages, AllowEmails, ValidationCode) "
                    + " Values(@Username, @ApplicationName, @Email, @Comment, "
                    + " @Password, @PasswordQuestion, @PasswordAnswer, @IsApproved, "
                    + " @LastActivityDate, @LastPasswordChangedDate, @CreationDate, "
                    + " @IsLockedOut, @LastLockedOutDate,"
                    + " @FailedPasswordAttemptCount, @FailedPasswordAttemptWindowStart, "
                    + " @FailedPasswordAnswerAttemptCount, @FailedPasswordAnswerAttemptWindowStart, "
                    + " @Enabled, @AccessCode, @AccessLevel, "
                    + " @Sex, @CompanyName, @Vat, @Ssn, @FirstName, @SecondName, "
                    + " @Address1, @Address2, @City, @State, @ZipCode, "
                    + " @Nation, @Tel1, @Mobile1, @Website1, @AllowMessages, @AllowEmails, @ValidationCode) ";
                    myCmd.CommandText = Database.ParseSql(sSql);

                    if (string.IsNullOrEmpty(username)) username = "";
                    if (string.IsNullOrEmpty(pApplicationName)) pApplicationName = "";
                    if (string.IsNullOrEmpty(email)) email = "";
                    if (string.IsNullOrEmpty(password)) password = "";
                    if (string.IsNullOrEmpty(passwordQuestion)) passwordQuestion = "";
                    if (string.IsNullOrEmpty(passwordAnswer)) passwordAnswer = "";

                    //cmd.Parameters.Add("@PKID", OdbcType.UniqueIdentifier).Value = providerUserKey;
                    myCmd.Parameters.Add(Database.Parameter(myProv, "Username", username));
                    myCmd.Parameters.Add(Database.Parameter(myProv, "ApplicationName", pApplicationName));
                    myCmd.Parameters.Add(Database.Parameter(myProv, "Email", email));
                    myCmd.Parameters.Add(Database.Parameter(myProv, "Comment", ""));
                    myCmd.Parameters.Add(Database.Parameter(myProv, "Password", encodePassword(password)));
                    myCmd.Parameters.Add(Database.Parameter(myProv, "PasswordQuestion", passwordQuestion));
                    myCmd.Parameters.Add(Database.Parameter(myProv, "PasswordAnswer", encodePassword(passwordAnswer)));
                    myCmd.Parameters.Add(Database.Parameter(myProv, "IsApproved", isApproved));
                    myCmd.Parameters.Add(Database.Parameter(myProv, "LastActivityDate", createDate));
                    myCmd.Parameters.Add(Database.Parameter(myProv, "LastPasswordChangedDate", createDate));
                    myCmd.Parameters.Add(Database.Parameter(myProv, "CreationDate", createDate));
                    myCmd.Parameters.Add(Database.Parameter(myProv, "IsLockedOut", false));
                    myCmd.Parameters.Add(Database.Parameter(myProv, "LastLockedOutDate", createDate));
                    myCmd.Parameters.Add(Database.Parameter(myProv, "FailedPasswordAttemptCount", 0));
                    myCmd.Parameters.Add(Database.Parameter(myProv, "FailedPasswordAttemptWindowStart", createDate));
                    myCmd.Parameters.Add(Database.Parameter(myProv, "FailedPasswordAnswerAttemptCount", 0));
                    myCmd.Parameters.Add(Database.Parameter(myProv, "FailedPasswordAnswerAttemptWindowStart", createDate));
                    myCmd.Parameters.Add(Database.Parameter(myProv, "Enabled", newUser.Enabled));
                    myCmd.Parameters.Add(Database.Parameter(myProv, "AccessCode", newUser.AccessCode));
                    myCmd.Parameters.Add(Database.Parameter(myProv, "AccessLevel", newUser.AccessLevel));
                    myCmd.Parameters.Add(Database.Parameter(myProv, "Sex", newUser.Sex));
                    myCmd.Parameters.Add(Database.Parameter(myProv, "CompanyName", newUser.CompanyName));
                    myCmd.Parameters.Add(Database.Parameter(myProv, "Vat", newUser.Vat));
                    myCmd.Parameters.Add(Database.Parameter(myProv, "Ssn", newUser.Ssn));
                    myCmd.Parameters.Add(Database.Parameter(myProv, "FirstName", newUser.FirstName));
                    myCmd.Parameters.Add(Database.Parameter(myProv, "SecondName", newUser.SecondName));
                    myCmd.Parameters.Add(Database.Parameter(myProv, "Address1", newUser.Address1));
                    myCmd.Parameters.Add(Database.Parameter(myProv, "Address2", newUser.Address2));
                    myCmd.Parameters.Add(Database.Parameter(myProv, "City", newUser.City));
                    myCmd.Parameters.Add(Database.Parameter(myProv, "State", newUser.State));
                    myCmd.Parameters.Add(Database.Parameter(myProv, "ZipCode", newUser.ZipCode));
                    myCmd.Parameters.Add(Database.Parameter(myProv, "Nation", newUser.Nation));
                    myCmd.Parameters.Add(Database.Parameter(myProv, "Tel1", newUser.Tel1));
                    myCmd.Parameters.Add(Database.Parameter(myProv, "Mobile1", newUser.Mobile1));
                    myCmd.Parameters.Add(Database.Parameter(myProv, "Website1", newUser.Website1));

                    myCmd.Parameters.Add(Database.Parameter(myProv, "AllowMessages", newUser.AllowMessages));
                    myCmd.Parameters.Add(Database.Parameter(myProv, "AllowEmails", newUser.AllowEmails));
                    myCmd.Parameters.Add(Database.Parameter(myProv, "ValidationCode", newUser.ValidationCode));

                    int recAdded = myCmd.ExecuteNonQuery();
                    if (recAdded > 0)
                    {
                        status = MembershipCreateStatus.Success;
                    }
                    else
                    {
                        status = MembershipCreateStatus.UserRejected;
                    }
                }
                catch (Exception e)
                {
                    if (WriteExceptionsToEventLog)
                    {
                        writeToEventLog(e, "CreateUser");
                    }

                    status = MembershipCreateStatus.ProviderError;
                }
                finally
                {
                    myConn.Dispose();
                }

                return (PgnUser)GetUser(username, false);
            }
            else
            {
                status = MembershipCreateStatus.DuplicateUserName;
            }

            return null;
        }
        public override MembershipUser CreateUser(string username,
                                          string password,
                                          string email,
                                          string passwordQuestion,
                                          string passwordAnswer,
                                          bool isApproved,
                                          object providerUserKey,
                                          out MembershipCreateStatus status)
        {
            var newUser = new PgnUser();

            return this.CreateUser(
                newUser,
                username,
                password,
                email,
                passwordQuestion,
                passwordAnswer,
                true,
                "",
                out status);
        }
        protected PgnUser GetUserFromReader(DbDataReader myRd)
        {
            object providerUserKey = null; //= myRd.GetValue(0);
            int id = 0;
            string username = "";
            string email = "";
            string passwordQuestion = "";
            string comment = "";
            bool isApproved = false;
            bool isLockedOut = false;
            DateTime creationDate = new DateTime();
            DateTime lastLoginDate = new DateTime();
            DateTime lastActivityDate = new DateTime();
            DateTime lastPasswordChangedDate = new DateTime();
            DateTime lastLockedOutDate = new DateTime();
            bool enabled = false;
            string accessCode = "";
            int accessLevel = 0;
            bool isCore = false;
            //20111118
            string sex = "";
            string companyName = "";
            string vat = "";
            string ssn = "";
            string firstName = "";
            string secondName = "";
            string address1 = "";
            string address2 = "";
            string city = "";
            string state = "";
            string zipCode = "";
            string nation = "";
            string tel1 = "";
            string mobile1 = "";
            string website1 = "";
            //20120306
            bool allowMessages = false;
            bool allowEmails = false;
            //20150403
            string validationCode = "";

            if (!Convert.IsDBNull(myRd["Id"]))
                id = (int)myRd["Id"];
            if (!Convert.IsDBNull(myRd["Username"]))
                username = (string)myRd["Username"];
            if (!Convert.IsDBNull(myRd["Email"]))
                email = (string)myRd["Email"];
            if (!Convert.IsDBNull(myRd["PasswordQuestion"]))
                passwordQuestion = (string)myRd["PasswordQuestion"];
            if (!Convert.IsDBNull(myRd["Comment"]))
                comment = (string)myRd["Comment"];
            if (!Convert.IsDBNull(myRd["IsApproved"]))
                isApproved = (bool)myRd["IsApproved"];
            if (!Convert.IsDBNull(myRd["IsLockedOut"]))
                isLockedOut = (bool)myRd["IsLockedOut"];
            if (!Convert.IsDBNull(myRd["creationDate"]))
                creationDate = (DateTime)myRd["creationDate"];
            if (!Convert.IsDBNull(myRd["lastLoginDate"]))
                lastLoginDate = (DateTime)myRd["lastLoginDate"];
            if (!Convert.IsDBNull(myRd["lastActivityDate"]))
                lastActivityDate = (DateTime)myRd["lastActivityDate"];
            if (!Convert.IsDBNull(myRd["lastPasswordChangedDate"]))
                lastPasswordChangedDate = (DateTime)myRd["lastPasswordChangedDate"];
            if (!Convert.IsDBNull(myRd["lastLockedOutDate"]))
                lastLockedOutDate = (DateTime)myRd["lastLockedOutDate"];
            if (!Convert.IsDBNull(myRd["enabled"]))
                enabled = (bool)myRd["enabled"];
            if (!Convert.IsDBNull(myRd["accessCode"]))
                accessCode = (string)myRd["accessCode"];
            if (!Convert.IsDBNull(myRd["AccessLevel"]))
                accessLevel = (int)myRd["AccessLevel"];
            if (!Convert.IsDBNull(myRd["isCore"]))
                isCore = (bool)myRd["isCore"];
            if (!Convert.IsDBNull(myRd["allowMessages"]))
                allowMessages = (bool)myRd["allowMessages"];
            if (!Convert.IsDBNull(myRd["allowEmails"]))
                allowEmails = (bool)myRd["allowEmails"];

            if (!Convert.IsDBNull(myRd["sex"]))
                sex = (string)myRd["sex"];
            if (!Convert.IsDBNull(myRd["companyName"]))
                companyName = (string)myRd["companyName"];
            if (!Convert.IsDBNull(myRd["vat"]))
                vat = (string)myRd["vat"];
            if (!Convert.IsDBNull(myRd["ssn"]))
                ssn = (string)myRd["ssn"];
            if (!Convert.IsDBNull(myRd["firstName"]))
                firstName = (string)myRd["firstName"];
            if (!Convert.IsDBNull(myRd["secondName"]))
                secondName = (string)myRd["secondName"];
            if (!Convert.IsDBNull(myRd["address1"]))
                address1 = (string)myRd["address1"];
            if (!Convert.IsDBNull(myRd["address2"]))
                address2 = (string)myRd["address2"];
            if (!Convert.IsDBNull(myRd["city"]))
                city = (string)myRd["city"];
            if (!Convert.IsDBNull(myRd["state"]))
                state = (string)myRd["state"];
            if (!Convert.IsDBNull(myRd["zipCode"]))
                zipCode = (string)myRd["zipCode"];
            if (!Convert.IsDBNull(myRd["nation"]))
                nation = (string)myRd["nation"];
            if (!Convert.IsDBNull(myRd["tel1"]))
                tel1 = (string)myRd["tel1"];
            if (!Convert.IsDBNull(myRd["mobile1"]))
                mobile1 = (string)myRd["mobile1"];
            if (!Convert.IsDBNull(myRd["website1"]))
                website1 = (string)myRd["website1"];
            if (!Convert.IsDBNull(myRd["validationCode"]))
                validationCode = (string)myRd["validationCode"];

            string name = "PgnUserProvider";
            if (this.Name != null) name = this.Name;

            PgnUser u = new PgnUser(name,
                                  id,
                                  username,
                                  providerUserKey,
                                  email,
                                  passwordQuestion,
                                  comment,
                                  isApproved,
                                  isLockedOut,
                                  creationDate,
                                  lastLoginDate,
                                  lastActivityDate,
                                  lastPasswordChangedDate,
                                  lastLockedOutDate);
            u.Enabled = enabled;
            u.AccessCode = accessCode;
            u.AccessLevel = accessLevel;
            u.IsCore = isCore;
            u.AllowMessages = allowMessages;
            u.AllowEmails = allowEmails;

            u.Sex = sex;
            u.CompanyName = companyName;
            u.Vat = vat;
            u.Ssn = ssn;
            u.FirstName = firstName;
            u.SecondName = secondName;
            u.Address1 = address1;
            u.Address2 = address2;
            u.City = city;
            u.State = state;
            u.ZipCode = zipCode;
            u.Nation = nation;
            u.Tel1 = tel1;
            u.Mobile1 = mobile1;
            u.Website1 = website1;
            u.ValidationCode = validationCode;

            return u;
        }
    public void Obj2form()
    {
        PgnUser obj = null;
        obj = (PgnUser)Membership.GetUser(CurrentUser);
        if (obj == null)
            obj = new PgnUser();

        //insview

        //update
        LitUpdUserName.Text = obj.UserName;
        ChkUpdEnabled.Checked = obj.Enabled;
        ChkUpdApproved.Checked = obj.IsApproved;
        TxtUpdEmail.Text = obj.Email;
        TxtUpdComment.Text = obj.Comment;
        TxtUpdAccessCode.Text = obj.AccessCode;
        TxtUpdAccessLevel.Text = obj.AccessLevel.ToString();
        TxtUpdCompanyName.Text = obj.CompanyName;
        TxtUpdVat.Text = obj.Vat;
        TxtUpdSsn.Text = obj.Ssn;
        TxtUpdFirstName.Text = obj.FirstName;
        TxtUpdSecondName.Text = obj.SecondName;
        TxtUpdAddress1.Text = obj.Address1;
        TxtUpdAddress2.Text = obj.Address2;
        TxtUpdCity.Text = obj.City;
        TxtUpdState.Text = obj.State;
        TxtUpdZipCode.Text = obj.ZipCode;
        Utility.SetDropByValue(DropUpdNation, obj.Nation);
        TxtUpdTel1.Text = obj.Tel1;
        TxtUpdMobile1.Text = obj.Mobile1;
        TxtUpdWebsite1.Text = obj.Website1;
        ChkUpdAllowMessages.Checked = obj.AllowMessages;
        ChkUpdAllowEmails.Checked = obj.AllowEmails;

        LitPwdUsername.Text = obj.UserName;

        PgnUserHelper.LoadListRolesInUser(ListRolesInUser, CurrentUser);
        PgnUserHelper.LoadListRolesNotInUser(ListRolesNotInUser, CurrentUser);
        //load hidden field with current users in rol
        HiddenRolesInUser.Value = "";
        foreach (ListItem item in ListRolesInUser.Items)
        {
            HiddenRolesInUser.Value += item.Value + "|";
        }
        if (HiddenRolesInUser.Value.Length > 0)
            HiddenRolesInUser.Value =
                HiddenRolesInUser.Value.Remove(HiddenRolesInUser.Value.Length - 1);
    }
 //CHECK
 public override MembershipUser GetUser(string username, bool userIsOnline)
 {
     var res = new PgnUser(providerName, 0, username, "", "", "", "", true, false,
         DateTime.MinValue, DateTime.MinValue, DateTime.MinValue,
         DateTime.MinValue, DateTime.MinValue);
     return res;
 }