pagetitle = "用户登录";
postusername = Utils.UrlDecode(DNTRequest.GetString("postusername")).Trim();
if (this.userid != -1)
{
SetUrl(BaseConfigs.GetForumPath);
SetMetaRefresh();
SetShowBackLink(false);
AddMsgLine("您已经登录,无须重复登录");
ispost = true;
SetLeftMenuRefresh();
}
if (LoginLogs.UpdateLoginLog(DNTRequest.GetIP(), false) >= 5)
{
AddMsgLine("您已经多次输入密码错误, 请15分钟后再登录");
return;
}
//如果提交...
if (DNTRequest.IsPost())
{
base.SetBackLink("login.aspx?postusername=" + Utils.UrlEncode(DNTRequest.GetString("username")));
if (!Users.Exists(DNTRequest.GetString("username")))
{
AddErrLine("用户不存在");
}
if (DNTRequest.GetString("password").Equals(""))
{
AddErrLine("密码不能为空");
}
if (IsErr())
{
return;
}
int uid = -1;
if (config.Passwordmode == 1)
{
if (config.Secques == 1)
{
uid = Users.CheckDvBbsPasswordAndSecques(DNTRequest.GetString("username"),
DNTRequest.GetString("password"),
DNTRequest.GetInt("question", 0),
DNTRequest.GetString("answer"));
}
else
{
uid = Users.CheckDvBbsPassword(DNTRequest.GetString("username"), DNTRequest.GetString("password"));
}
}
else
{
if (config.Secques == 1)
{
uid = Users.CheckPasswordAndSecques(DNTRequest.GetString("username"),
DNTRequest.GetString("password"),
true,
DNTRequest.GetInt("question", 0),
DNTRequest.GetString("answer"));
}
else
{
uid = Users.CheckPassword(DNTRequest.GetString("username"), DNTRequest.GetString("password"), true);
}
}
if (uid != -1)
{
ShortUserInfo userinfo = Users.GetShortUserInfo(uid);
if (userinfo.Groupid == 8)
{
AddErrLine("抱歉, 您的用户身份尚未得到验证");
if (config.Regverify == 1)
{
AddMsgLine("请您到您的邮箱中点击激活链接来激活您的帐号");
}
if (config.Regverify == 2)
{
AddMsgLine("您需要等待一些时间, 待系统管理员审核您的帐户后才可登录使用");
}
}
else
{
LoginLogs.DeleteLoginLog(DNTRequest.GetIP());
UserCredits.UpdateUserCredits(uid);
ForumUtils.WriteUserCookie(
uid,
Utils.StrToInt(DNTRequest.GetString("expires"), -1),
config.Passwordkey,
DNTRequest.GetInt("templateid", 0),
DNTRequest.GetInt("loginmode", -1));
OnlineUsers.UpdateAction(olid, UserAction.Login.ActionID, 0, config.Onlinetimeout);
Users.UpdateUserLastvisit(uid, DNTRequest.GetIP());
string reurl = Utils.UrlDecode(ForumUtils.GetReUrl());
if (reurl.IndexOf("register.aspx") < 0)
{
SetUrl(reurl);
}
else
{
SetUrl("index.aspx");
}
AddMsgLine("登录成功, 返回登录前页面");
username = DNTRequest.GetString("username");
userid = uid;
usergroupinfo = UserGroups.GetUserGroupInfo(userinfo.Groupid);
// 根据用户组得到相关联的管理组id
useradminid = usergroupinfo.Radminid;
SetMetaRefresh();
SetShowBackLink(false);
SetLeftMenuRefresh();
}
}
else
{
int errcount = LoginLogs.UpdateLoginLog(DNTRequest.GetIP(), true);
if (errcount > 5)
{
AddErrLine("您已经输入密码5次错误, 请15分钟后再试");
}
else
{
AddErrLine(string.Format("密码或安全提问第{0}次错误, 您最多有5次机会重试", errcount.ToString()));
}
}
}
else
{
if ((DNTRequest.GetUrlReferrer() == "") || (DNTRequest.GetUrlReferrer().IndexOf("login") > -1) ||
DNTRequest.GetUrlReferrer().IndexOf("logout") > -1)
{
Utils.WriteCookie("reurl", "index.aspx");
}
else
{
Utils.WriteCookie("reurl",
DNTRequest.GetQueryString("reurl") == ""
? DNTRequest.GetUrlReferrer()
: DNTRequest.GetQueryString("reurl"));
}
}