110,561
社区成员
发帖
与我相关
我的任务
分享
/// <summary>
/// 创建一个用户
/// </summary>
/// <param name="user">用户</param>
/// <returns></returns>
public User CreateUser(User user)
{
//using (System.Transactions.TransactionScope ts = new System.Transactions.TransactionScope())
//{
//
//创建混合码,同时对密码进行加密
//
string salt = SecurityHelper.CreateSalt(saltLength);
string passwordHash = SecurityHelper.SaltAndHash(user.Password, salt);
//
//插入用户
//
//
//在这里,一直报insert into 语法错误,我看了老半天就一直没看出来.
//
string sql = "INSERT INTO [User] (UserName,UserNameToLower,Email,DisplayName,Password,Salt,CreateTime,LastLoginTime,State)"
+ " VALUES (@UserName,@UserNameToLower,@Email,@DisplayName,@Passport,@Salt,@CreateTime,@LastLoginTime,@State)";
DbCommand cmd = db.GetSqlStringCommand(sql);
db.AddInParameter(cmd, "UserName", DbType.String, user.UserName);
db.AddInParameter(cmd, "UserNameToLower", DbType.String, user.UserName.ToLower());
db.AddInParameter(cmd, "Email", DbType.String, user.Email);
db.AddInParameter(cmd, "DisplayName", DbType.String, user.DisplayName);
db.AddInParameter(cmd, "Passport", DbType.String, passwordHash);
db.AddInParameter(cmd, "Salt", DbType.String, salt);
db.AddInParameter(cmd, "CreateTime", DbType.String, user.CreateTime);
db.AddInParameter(cmd, "LastLoginTime", DbType.String, user.LastLoginTime);
db.AddInParameter(cmd, "State", DbType.Int32, user.State);
db.ExecuteNonQuery(cmd);
//
//默认给用户授Users权限
//
sql = "INSERT INTO UserInRoles (UserName,RoleName) VALUES (@UserName,@RoleName)";
db.AddInParameter(cmd, "UserName", DbType.Int32, user.UserName);
db.AddInParameter(cmd, "RoleName", DbType.String, "Users");
db.ExecuteNonQuery(cmd);
//ts.Complete();
return user;
//}
}