BusinessLogic.SqlMembershipProvider.CreateUser C# (CSharp) Метод

CreateUser() публичный Метод

public CreateUser ( string username, string password, string email, string passwordQuestion, string passwordAnswer, bool isApproved, object providerUserKey, MembershipCreateStatus &status ) : System.Web.Security.MembershipUser
username string
password string
email string
passwordQuestion string
passwordAnswer string
isApproved bool
providerUserKey object
status MembershipCreateStatus
Результат System.Web.Security.MembershipUser
        public override MembershipUser CreateUser(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;

                if (providerUserKey == null)
                {
                    providerUserKey = Guid.NewGuid();
                }
                else
                {
                    if (!(providerUserKey is Guid))
                    {
                        status = MembershipCreateStatus.InvalidProviderUserKey;
                        return null;
                    }
                }

                SqlConnection conn = new SqlConnection(connectionString);
                SqlCommand cmd = new SqlCommand("INSERT INTO Users " +
                      " (PKID, Username, Password, Email, PasswordQuestion, " +
                      " PasswordAnswer, IsApproved," +
                      " Comment, CreationDate, LastPasswordChangedDate, LastActivityDate," +
                      " ApplicationName, IsLockedOut, LastLockedOutDate," +
                      " FailedPasswordAttemptCount, FailedPasswordAttemptWindowStart, " +
                      " FailedPasswordAnswerAttemptCount, FailedPasswordAnswerAttemptWindowStart)" +
                      " Values(@PKID, @Username, @Password, @Email, @PasswordQuestion, " +
                      " @PasswordAnswer, @IsApproved, @Comment, @CreationDate, @LastPasswordChangedDate," +
                      " @LastActivityDate, @ApplicationName, @IsLockedOut, @LastLockedOutDate," +
                      " @FailedPasswordAttemptCount, @FailedPasswordAttemptWindowStart, " +
                      " @FailedPasswordAnswerAttemptCount, @FailedPasswordAnswerAttemptWindowStart)", conn);

                cmd.Parameters.AddWithValue("@PKID", providerUserKey);
                cmd.Parameters.AddWithValue("@Username",username);
                cmd.Parameters.AddWithValue("@Password", EncodePassword(password));
                cmd.Parameters.AddWithValue("@Email", email);
                cmd.Parameters.AddWithValue("@PasswordQuestion", passwordQuestion);
                cmd.Parameters.AddWithValue("@PasswordAnswer", EncodePassword(passwordAnswer));
                cmd.Parameters.AddWithValue("@IsApproved", isApproved);
                cmd.Parameters.AddWithValue("@Comment", "");
                cmd.Parameters.AddWithValue("@CreationDate", createDate);
                cmd.Parameters.AddWithValue("@LastPasswordChangedDate", createDate);
                cmd.Parameters.AddWithValue("@LastActivityDate", createDate);
                cmd.Parameters.AddWithValue("@ApplicationName", pApplicationName);
                cmd.Parameters.AddWithValue("@IsLockedOut", false);
                cmd.Parameters.AddWithValue("@LastLockedOutDate", createDate);
                cmd.Parameters.AddWithValue("@FailedPasswordAttemptCount", 0);
                cmd.Parameters.AddWithValue("@FailedPasswordAttemptWindowStart", createDate);
                cmd.Parameters.AddWithValue("@FailedPasswordAnswerAttemptCount", 0);
                cmd.Parameters.AddWithValue("@FailedPasswordAnswerAttemptWindowStart", createDate);

                try
                {
                    conn.Open();

                    int recAdded = cmd.ExecuteNonQuery();

                    if (recAdded > 0)
                    {
                        status = MembershipCreateStatus.Success;
                    }
                    else
                    {
                        status = MembershipCreateStatus.UserRejected;
                    }
                }
                catch (SqlException e)
                {
                    if (WriteExceptionsToEventLog)
                    {
                        WriteToEventLog(e, "CreateUser");
                    }

                    status = MembershipCreateStatus.ProviderError;
                }
                finally
                {
                    conn.Close();
                }

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

            return null;
        }