📄 createuser.cs
字号:
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 + -