java membership_终于找到Membership.CreateUser的实现代码

publicoverrideMembershipUser CreateUser(stringusername,stringpassword,stringemail,stringpasswordQuestion,stringpasswordAnswer,boolisApproved,objectproviderUserKey,outMembershipCreateStatus status)

{stringstr3;

MembershipUser user;if(!SecUtility.ValidateParameter(refpassword,true,true,false,0x80))

{

status=MembershipCreateStatus.InvalidPassword;returnnull;

}//生成salt值stringsalt=base.GenerateSalt();//结合salt值对密码进行散列stringobjValue=base.EncodePassword(password, (int)this._PasswordFormat, salt);if(objValue.Length>0x80)

{

status=MembershipCreateStatus.InvalidPassword;returnnull;

}if(passwordAnswer!=null)

{

passwordAnswer=passwordAnswer.Trim();

}if(!string.IsNullOrEmpty(passwordAnswer))

{if(passwordAnswer.Length>0x80)

{

status=MembershipCreateStatus.InvalidAnswer;returnnull;

}

str3=base.EncodePassword(passwordAnswer.ToLower(CultureInfo.InvariantCulture), (int)this._PasswordFormat, salt);

}else{

str3=passwordAnswer;

}if(!SecUtility.ValidateParameter(refstr3,this.RequiresQuestionAndAnswer,true,false,0x80))

{

status=MembershipCreateStatus.InvalidAnswer;returnnull;

}if(!SecUtility.ValidateParameter(refusername,true,true,true,0x100))

{

status=MembershipCreateStatus.InvalidUserName;returnnull;

}if(!SecUtility.ValidateParameter(refemail,this.RequiresUniqueEmail,this.RequiresUniqueEmail,false,0x100))

{

status=MembershipCreateStatus.InvalidEmail;returnnull;

}if(!SecUtility.ValidateParameter(refpasswordQuestion,this.RequiresQuestionAndAnswer,true,false,0x100))

{

status=MembershipCreateStatus.InvalidQuestion;returnnull;

}if((providerUserKey!=null)&&!(providerUserKeyisGuid))

{

status=MembershipCreateStatus.InvalidProviderUserKey;returnnull;

}if(password.Length

{

status=MembershipCreateStatus.InvalidPassword;returnnull;

}intnum=0;for(inti=0; i

{if(!char.IsLetterOrDigit(password, i))

{

num;

}

}if(num

{

status=MembershipCreateStatus.InvalidPassword;returnnull;

}if((this.PasswordStrengthRegularExpression.Length>0)&&!Regex.IsMatch(password,this.PasswordStrengthRegularExpression))

{

status=MembershipCreateStatus.InvalidPassword;returnnull;

}

ValidatePasswordEventArgs e=newValidatePasswordEventArgs(username, password,true);this.OnValidatingPassword(e);if(e.Cancel)

{

status=MembershipCreateStatus.InvalidPassword;returnnull;

}try{

SqlConnectionHolder connection=null;try{

connection=SqlConnectionHelper.GetConnection(this._sqlConnectionString,true);this.CheckSchemaVersion(connection.Connection);

DateTime time=this.RoundToSeconds(DateTime.UtcNow);

SqlCommand command=newSqlCommand("dbo.aspnet_Membership_CreateUser", connection.Connection);

command.CommandTimeout=this.CommandTimeout;

command.CommandType=CommandType.StoredProcedure;

command.Parameters.Add(this.CreateInputParam("@ApplicationName", SqlDbType.NVarChar,this.ApplicationName));

command.Parameters.Add(this.CreateInputParam("@UserName", SqlDbType.NVarChar, username));

command.Parameters.Add(this.CreateInputParam("@Password", SqlDbType.NVarChar, objValue));

command.Parameters.Add(this.CreateInputParam("@PasswordSalt", SqlDbType.NVarChar, salt));

command.Parameters.Add(this.CreateInputParam("@Email", SqlDbType.NVarChar, email));

command.Parameters.Add(this.CreateInputParam("@PasswordQuestion", SqlDbType.NVarChar, passwordQuestion));

command.Parameters.Add(this.CreateInputParam("@PasswordAnswer", SqlDbType.NVarChar, str3));

command.Parameters.Add(this.CreateInputParam("@IsApproved", SqlDbType.Bit, isApproved));

command.Parameters.Add(this.CreateInputParam("@UniqueEmail", SqlDbType.Int,this.RequiresUniqueEmail?1:0));

command.Parameters.Add(this.CreateInputParam("@PasswordFormat", SqlDbType.Int, (int)this.PasswordFormat));

command.Parameters.Add(this.CreateInputParam("@CurrentTimeUtc", SqlDbType.DateTime, time));

SqlParameter parameter=this.CreateInputParam("@UserId", SqlDbType.UniqueIdentifier, providerUserKey);

parameter.Direction=ParameterDirection.InputOutput;

command.Parameters.Add(parameter);

parameter=newSqlParameter("@ReturnValue", SqlDbType.Int);

parameter.Direction=ParameterDirection.ReturnValue;

command.Parameters.Add(parameter);

command.ExecuteNonQuery();intnum3=(parameter.Value!=null)?((int)parameter.Value) :-1;if((num3<0)||(num3>11))

{

num3=11;

}

status=(MembershipCreateStatus)num3;if(num3!=0)

{returnnull;

}

providerUserKey=newGuid(command.Parameters["@UserId"].Value.ToString());

time=time.ToLocalTime();

user=newMembershipUser(this.Name, username, providerUserKey, email, passwordQuestion,null, isApproved,false, time, time, time, time,newDateTime(0x6da,1,1));

}finally{if(connection!=null)

{

connection.Close();

connection=null;

}

}

}catch{throw;

}returnuser;

}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值