我自己写了几个方法实现的,给你作参考吧!
/// <summary>
/// 会员注册
/// </summary>
/// <param name="tmpUsername"></param>
/// <param name="password"></param>
/// <param name="email"></param>
/// <returns></returns>
public int bbsreg(string tmpUsername, string password, string email)
{
string sql;
string md5pwd = Discuz.Common.Utils.MD5(password);
sql = "insert into dnt_users(username,password,email,groupid) values('" + tmpUsername + "','" + md5pwd + "','" + email + "',10)";
Socut.Data.ExecuteNonQuery(sql, 1);
sql = "select uid from dnt_users where username='" + tmpUsername + "' and password='" + md5pwd + "'";
int uid = Convert.ToInt32(Socut.Data.ExecuteScalar(sql, 1));
sql = "insert into dnt_userfields(uid) values(" + uid + ")";
Socut.Data.ExecuteNonQuery(sql, 1);
sql = "update dnt_statistics set totalusers=totalusers+1,lastusername='" + tmpUsername + "',lastuserid=" + uid;
Socut.Data.ExecuteNonQuery(sql, 1);
uid = getLogin(tmpUsername, password);
return uid;
}
/// <summary>
/// 用户登录
/// </summary>
/// <param name="username"></param>
/// <param name="password"></param>
/// <returns></returns>
public int getLogin(string username, string password)
{
int uid = UserFactory.CheckPassword(username, password, true);
//删除当前IP的历史登录错误
LoginLogFactory.DeleteLoginLog(DNTRequest.GetIP());
//根据积分重新刷新用户的积分用户组(如果不是积分用户组用户则不受影响)
// UserCreditsFactory.UpdateUserCredits(uid);
//更新用户动作
// OnlineUserFactory.UpdateAction(olid, UserAction.Login.ActionID, 0, config.Onlinetimeout);
//更新用户最后登录时间
UserFactory.UpdateUserLastvisit(uid, DNTRequest.GetIP());
//写入用户的论坛登录cookie
ForumUtils.WriteUserCookie(uid, Utils.StrToInt(DNTRequest.GetString("expires"), -1), config.Passwordkey, DNTRequest.GetInt("templateid", 0), DNTRequest.GetInt("loginmode", -1));
return uid;
}
/// <summary>
/// 修改密码
/// </summary>
/// <param name="username"></param>
/// <param name="oldpwd"></param>
/// <param name="newpwd"></param>
public void Uppassword(string username, string oldpwd, string newpwd)
{
string opwd = Discuz.Common.Utils.MD5(oldpwd);
string npwd = Discuz.Common.Utils.MD5(newpwd);
string sql = "update dnt_users set password='" + npwd + "' where username='" + username + "' and password='" + opwd + "'";
Socut.Data.ExecuteNonQuery(sql, 1);
}