⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 createuser.cs

📁 本系统是在asp版《在线文件管理器》的基础上设计制作
💻 CS
📖 第 1 页 / 共 2 页
字号:
				return;
			}

			string errorMessage = "";

			if (!passportAuthentication) 
			{
				switch (activation) 
				{

					case AccountActivation.Automatic :
					case AccountActivation.AdminApproval:
						if (!Users.PasswordIsMembershipCompliant( password.Text.Trim(), out errorMessage )) 
						{
							passwordContentValidator.IsValid = false;
							passwordContentValidator.ErrorMessage = errorMessage;
							return;
						}
						break;
				}
			}

			// Reset the placeHolderValidator
			//
			placeHolderValidator.IsValid = true;
			placeHolderNicknameValidator.IsValid = true;

			// try to create the new user account
			User user = new User();
			user.Username = username.Text.Trim();	
			#region 新增内容
			user.Nickname = nickname.Text.Trim();
			#endregion
			user.Email = emailAddress.Text;
			user.Password = password.Text.Trim();
			user.PasswordFormat = CSContext.Current.SiteSettings.PasswordFormat;

			// Passport authentication
			if(passportAuthentication && Context.Items.Contains("PassportUID"))
			{
				user.AppUserToken = (string)Context.Items["PassportUID"];
				user.Password = user.AppUserToken;
			}

			// If we're using Email Account Activation, then we generate the password
			//
			if(activation == AccountActivation.Email)
				user.Password = Microsoft.ScalableHosting.Security.Membership.GeneratePassword(8,2);

			// Does the user require approval?
			//
			if (activation == AccountActivation.AdminApproval)
				user.AccountStatus = UserAccountStatus.ApprovalPending;
			else
				user.AccountStatus = UserAccountStatus.Approved;
            
			// Set the Anonymous flag to false
			//
			user.IsAnonymous = false;

			// Attempt to create the user
			//
			if (user.Username == "Anonymous") 
			{
				status = Microsoft.ScalableHosting.Security.MembershipCreateStatus.DuplicateUserName;
			} 
			else 
			{

				try 
				{
					CreateUserStatus createUserStatus = Users.Create(user, true);
					if (createUserStatus == CreateUserStatus.Created)
						status = Microsoft.ScalableHosting.Security.MembershipCreateStatus.Success;
					else if (createUserStatus == CreateUserStatus.DuplicateNickname)
					{					
						// 昵称已经存在
						placeHolderNicknameValidator.ErrorMessage = CommunityServer.Components.ResourceManager.GetString("CreateNewAccount_CreateUserStatus_DuplicateNickname");
						placeHolderNicknameValidator.IsValid = false;
						return;
					}
				}
				catch (Microsoft.ScalableHosting.Security.MembershipCreateUserException exception)
				{
					status = exception.StatusCode;
				}

			}

			// Determine if the account was created successfully
			//
			switch (status) 
			{

					// Username already exists!
				case Microsoft.ScalableHosting.Security.MembershipCreateStatus.DuplicateUserName:
					placeHolderValidator.ErrorMessage = CommunityServer.Components.ResourceManager.GetString("CreateNewAccount_CreateUserStatus_DuplicateUsername");
					placeHolderValidator.IsValid = false;
					break;

					// Email already exists!
				case Microsoft.ScalableHosting.Security.MembershipCreateStatus.DuplicateEmail:
					placeHolderValidator.ErrorMessage = CommunityServer.Components.ResourceManager.GetString("CreateNewAccount_CreateUserStatus_DuplicateEmailAddress");
					placeHolderValidator.IsValid = false;
					break;

					// Unknown failure has occurred!
				case Microsoft.ScalableHosting.Security.MembershipCreateStatus.ProviderError:
					placeHolderValidator.ErrorMessage = CommunityServer.Components.ResourceManager.GetString("CreateNewAccount_CreateUserStatus_UnknownFailure");
					placeHolderValidator.IsValid = false;
					break;

					// Username is disallowed
				case Microsoft.ScalableHosting.Security.MembershipCreateStatus.UserRejected:
					placeHolderValidator.ErrorMessage = CommunityServer.Components.ResourceManager.GetString("CreateNewAccount_CreateUserStatus_DisallowedUsername");
					placeHolderValidator.IsValid = false;
					break;

				case Microsoft.ScalableHosting.Security.MembershipCreateStatus.InvalidAnswer:
				case Microsoft.ScalableHosting.Security.MembershipCreateStatus.InvalidQuestion:
					placeHolderValidator.ErrorMessage = ResourceManager.GetString("CreateNewAccount_CreateUserStatus_QA");
					placeHolderValidator.IsValid = false;
					break;

				case Microsoft.ScalableHosting.Security.MembershipCreateStatus.InvalidPassword:
					placeHolderValidator.ErrorMessage = ResourceManager.GetString("CreateNewAccount_CreateUserStatus_InvalidPassword");
					placeHolderValidator.IsValid = false;
					break;

					// Everything went off fine, good
				case Microsoft.ScalableHosting.Security.MembershipCreateStatus.Success:

				switch (activation) 
				{
					case AccountActivation.AdminApproval:
						LeaveSecureConnection(Globals.GetSiteUrls().Message(CSExceptionType.UserAccountPending));
						break;

					case AccountActivation.Email:
						LeaveSecureConnection( Globals.GetSiteUrls().Message(CSExceptionType.UserAccountCreated));
						break;

					case AccountActivation.Automatic:
						// Send admins back to the manage user page.
						if (CSContext.Current.User.IsAdministrator)
							LeaveSecureConnection(Globals.GetSiteUrls().AdminManageUsers);
						
						// Are we allowing login?
						if(CSContext.Current.SiteSettings.AllowLogin)
							if(!Page.Request.IsAuthenticated)
								FormsAuthentication.SetAuthCookie(user.Username, true);
						LeaveSecureConnection( Globals.GetSiteUrls().Message(CSExceptionType.UserAccountCreatedAuto));
						
						break;
				}
					break;
			}			
		}

        void Cancel_Click (Object sender, EventArgs e) {
            // send the user back to from where they came
			
			if(!Globals.RedirectSiteUrl())
				Context.Response.Redirect(csContext.ReturnUrl, true);
		}
        #endregion

		#region public properties
        // *********************************************************************
        //  Redirect
        //
        /// <summary>
        /// Optionally don't perform redirect when creating a new user
        /// </summary>
        // ***********************************************************************/
		[
		System.ComponentModel.DefaultValue( true ),
		]
		public virtual Boolean Redirect {
			get {
				Object state = ViewState["Redirect"];
				if ( state != null ) {
					return (Boolean)state;
				}
				return true;
			}
			set {
				ViewState["Redirect"] = value;
			}
		}

		#endregion

        #region Helpers
        private bool IsAgreementAccepted () {
            // If services agreement is required
            //
            if (acceptAgreement != null && requiredAcceptAgreement != null) {
                if (!acceptAgreement.Checked) { 
                    requiredAcceptAgreement.IsValid = false;
                    return false;
                }
            }

            // Agreement accept is not required or user has agreed ...
            //
            return true;
        }
        #endregion
    }
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -