引用greystar高手代码. using System;
using System.Data;
using System.Configuration;
using System.Web;
using System.Web.Security;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Web.UI.WebControls.WebParts;
using System.Web.UI.HtmlControls;
using Discuz.Common;
using Discuz.Forum;
using Discuz.Config;
/// <summary>
/// LoginBBS 的摘要说明
/// </summary>
public class LoginBBS
{
public LoginBBS()
{
//
// TODO: 在此处添加构造函数逻辑
//
}
static bool CreateBBSUser(string username, string nickname, string pwd, string mail)
{
// 用户名这里为tmpUsername
// 判断用户名是否已被注册
if (Discuz.Forum.Users.Exists(username))
{
// 这里提示该用户名已经被使用
return false;
}
else if (!Utils.IsSafeSqlString(username))
{
// 提示用户名中存在非法字符
return false;
}
//else if (username.Trim() == PrivateMessageFactory.SystemUserName || ForumUtils.IsBanUsername(username, config.Censoruser))
//{
// //提示用户名属于禁止名单, 或者与负责发送新用户注册欢迎信件的用户名称相同...
// return false;
//}
else if (ForumUtils.InBanWordArray(username))
{
//提示用户名含有论坛禁止的词语, 请更换
return false;
}
if (Discuz.Forum.Users.FindUserEmail(mail) != -1)
{
//提示email已经被其它用户注册使用
return false;
}
// 你也可以增加更多你自己的检测规则, 尽量保证用户信息的合法和安全......
Discuz.Forum.Entity.UserInfo info3 = new Discuz.Forum.Entity.UserInfo();
info3.Username = Utils.HtmlEncode(username);
info3.Nickname = Utils.HtmlEncode(nickname);
info3.Password = Utils.MD5(pwd);
info3.Secques = ForumUtils.GetUserSecques(0, "");
info3.Gender = 0;
info3.Adminid = 0;
info3.Groupexpiry = 0;
info3.Extgroupids = "";
info3.Regip = DNTRequest.GetIP();
info3.Joindate = Utils.GetDateTime();
info3.Lastip = DNTRequest.GetIP();
info3.Lastvisit = Utils.GetDateTime();
info3.Lastactivity = Utils.GetDateTime();
info3.Lastpost = Utils.GetDateTime();
info3.Lastpostid = 0;
info3.Lastposttitle = "";
info3.Posts = 0;
info3.Digestposts = 0;
info3.Oltime = 0;
info3.Pageviews = 0;
info3.Credits = 0;
info3.Extcredits1 = Scoresets.GetScoreSet(1).Init;
info3.Extcredits2 = Scoresets.GetScoreSet(2).Init;
info3.Extcredits3 = Scoresets.GetScoreSet(3).Init;
info3.Extcredits4 = Scoresets.GetScoreSet(4).Init;
info3.Extcredits5 = Scoresets.GetScoreSet(5).Init;
info3.Extcredits6 = Scoresets.GetScoreSet(6).Init;
info3.Extcredits7 = Scoresets.GetScoreSet(7).Init;
info3.Extcredits8 = Scoresets.GetScoreSet(8).Init;
info3.Avatarshowid = 0;
info3.Email = mail;
info3.Bday = "";
info3.Sigstatus = 0;
info3.Tpp = 0;
info3.Ppp = 0;
info3.Templateid = 1;
info3.Pmsound = 0;
info3.Showemail = 0;
info3.Invisible = 0;
info3.Newpm = 0;
info3.Medals = "";
info3.Accessmasks = 0;
info3.Website = "";
info3.Icq = "";
info3.Qq = "";
info3.Yahoo = "";
info3.Msn = "";
info3.Skype = "";
info3.Location = "";
info3.Customstatus = "";
info3.Avatar = @"avatars\common\0.gif";
info3.Avatarwidth = 0;
info3.Avatarheight = 0;
info3.Bio = "";
info3.Signature = "";
info3.Sightml = "";
info3.Authtime = Utils.GetDateTime();
info3.Authstr = "";
info3.Authflag = 0;
info3.Groupid = UserCredits.GetCreditsUserGroupID(0f).Groupid;
info3.Realname = "";
info3.Idcard = "";
info3.Mobile = "";
info3.Phone = "";
int uid = Discuz.Forum.Users.CreateUser(info3);
return true;
}
//检测用户
public static bool bbscheckLogin(string username, string pwd)
{
int uid = Discuz.Forum.Users.CheckPassword(username, pwd, true);
if (uid == -1)
return false;
LoginLogs.DeleteLoginLog(DNTRequest.GetIP());
UserCredits.UpdateUserCredits(uid);
string pk = GeneralConfigs.GetConfig().Passwordkey;
ForumUtils.WriteUserCookie(uid, -1, pk, 0, -1);
int olid = OnlineUsers.UpdateInfo(pk, 10).Olid;
OnlineUsers.UpdateAction(olid, UserAction.Login.ActionID, 0, 10);
Discuz.Forum.Users.UpdateUserLastvisit(uid, DNTRequest.GetIP());
return true;
}
//获取热帖,前十个,查看次数大于30;
public static DataTable GetHotTopicList()
{
DataTable dt = Focuses.GetHotTopicList(10, 30);
return dt;
}
public static void exitLogin(int uid)
{
//删除用户在线记录
OnlineUsers.DeleteRows(uid);
//清除用户Cookie信息
ForumUtils.ClearUserCookie();
}
}