asp.net DiscuzNT登录,退出的代码

代码如下:

using System;
using System.Collections.Generic;
using System.Text;
using Discuz.Common;
using Discuz.Forum;
using Discuz.Config;
using Discuz.Entity;
namespace DiscuzIntegration
{
public class Integration
{
public static void Login(string username, string password)
{
try
{
Discuz.Config.GeneralConfigInfo config = Discuz.Config.GeneralConfigs.GetConfig();
int uid = Users.GetUserID(username);
if (uid == -1 || !Users.Exists(uid))
{
Regedit(username, password);
uid = Users.GetUserID(username);
}
//删除之前的错误登录信息
LoginLogs.DeleteLoginLog(DNTRequest.GetIP());
//根据积分公式刷新用户总积分
UserCredits.UpdateUserCredits(uid);
//写入用户登录后的cookie
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());
}
catch
{
}
}
public static void Logout(string username)
{
try
{
int uid = Users.GetUserID(username);
int olid = OnlineUsers.GetOlidByUid(uid);
OnlineUsers.DeleteRows(olid);
ForumUtils.ClearUserCookie();
}
catch
{
}
}
public static bool Regedit(string tmpUsername, string password)
{
try
{
//以下为用户注册代码
Discuz.Config.GeneralConfigInfo config = Discuz.Config.GeneralConfigs.GetConfig();
UserGroupInfo usergroupinfo = new UserGroupInfo();
usergroupinfo.Groupid = 10; //新手上路
//如果用户名符合注册规则, 则判断是否已存在
if (Users.Exists(tmpUsername))
{
//
// 这里提示错误信息"用户名已经存在!"
//
return false;
}
UserInfo __userinfo = new UserInfo();
__userinfo.Username = Utils.HtmlEncode(tmpUsername);
__userinfo.Nickname = Utils.HtmlEncode(DNTRequest.GetString(""));
__userinfo.Password = Utils.MD5(password);
__userinfo.Secques = "";// ForumUtils.GetUserSecques(DNTRequest.GetInt("question", 0), DNTRequest.GetString("answer"));
__userinfo.Gender = DNTRequest.GetInt("gender", 0);
__userinfo.Adminid = 0;
__userinfo.Groupexpiry = 0;
__userinfo.Extgroupids = "";
__userinfo.Regip = DNTRequest.GetIP();
__userinfo.Joindate = Utils.GetDateTime();
__userinfo.Lastip = DNTRequest.GetIP();
__userinfo.Lastvisit = Utils.GetDateTime();
__userinfo.Lastactivity = Utils.GetDateTime();
__userinfo.Lastpost = Utils.GetDateTime();
__userinfo.Lastpostid = 0;
__userinfo.Lastposttitle = "";
__userinfo.Posts = 0;
__userinfo.Digestposts = 0;
__userinfo.Oltime = 0;
__userinfo.Pageviews = 0;
__userinfo.Credits = 0;
__userinfo.Extcredits1 = Scoresets.GetScoreSet(1).Init;
__userinfo.Extcredits2 = Scoresets.GetScoreSet(2).Init;
__userinfo.Extcredits3 = Scoresets.GetScoreSet(3).Init;
__userinfo.Extcredits4 = Scoresets.GetScoreSet(4).Init;
__userinfo.Extcredits5 = Scoresets.GetScoreSet(5).Init;
__userinfo.Extcredits6 = Scoresets.GetScoreSet(6).Init;
__userinfo.Extcredits7 = Scoresets.GetScoreSet(7).Init;
__userinfo.Extcredits8 = Scoresets.GetScoreSet(8).Init;
__userinfo.Avatarshowid = 0;
__userinfo.Email = "";
__userinfo.Bday = "";
__userinfo.Sigstatus = DNTRequest.GetInt("sigstatus", 0);
if (__userinfo.Sigstatus != 0)
{
__userinfo.Sigstatus = 1;
}
__userinfo.Tpp = DNTRequest.GetInt("tpp", 0);
__userinfo.Ppp = DNTRequest.GetInt("ppp", 0);
__userinfo.Templateid = DNTRequest.GetInt("templateid", 1);
__userinfo.Pmsound = DNTRequest.GetInt("pmsound", 0);
__userinfo.Showemail = DNTRequest.GetInt("showemail", 0);
int receivepmsetting = 1;
foreach (string rpms in DNTRequest.GetString("receivesetting").Split(','))
{
if (rpms != string.Empty)
{
int tmp = int.Parse(rpms);
receivepmsetting = receivepmsetting | tmp;
}
}
if (config.Regadvance == 0)
{
receivepmsetting = 7;
}
__userinfo.Newsletter = (ReceivePMSettingType)receivepmsetting;
__userinfo.Invisible = DNTRequest.GetInt("invisible", 0);
__userinfo.Newpm = 0;
__userinfo.Medals = "";
if (config.Welcomemsg == 1)
{
__userinfo.Newpm = 1;
}
__userinfo.Accessmasks = DNTRequest.GetInt("accessmasks", 0);
//
__userinfo.Website = Utils.HtmlEncode(DNTRequest.GetString("website"));
__userinfo.Icq = Utils.HtmlEncode(DNTRequest.GetString("icq"));
__userinfo.Qq = Utils.HtmlEncode(DNTRequest.GetString("qq"));
__userinfo.Yahoo = Utils.HtmlEncode(DNTRequest.GetString("yahoo"));
__userinfo.Msn = Utils.HtmlEncode(DNTRequest.GetString("msn"));
__userinfo.Skype = Utils.HtmlEncode(DNTRequest.GetString("skype"));
__userinfo.Location = Utils.HtmlEncode(DNTRequest.GetString("location"));
if (usergroupinfo.Allowcstatus == 1)
{
__userinfo.Customstatus = Utils.HtmlEncode(DNTRequest.GetString("customstatus"));
}
else
{
__userinfo.Customstatus = "";
}
__userinfo.Avatar = @"avatars\common\0.gif";
__userinfo.Avatarwidth = 0;
__userinfo.Avatarheight = 0;
__userinfo.Bio = DNTRequest.GetString("bio");
__userinfo.Signature = Utils.HtmlEncode(ForumUtils.BanWordFilter(DNTRequest.GetString("signature")));
PostpramsInfo _postpramsinfo = new PostpramsInfo();
_postpramsinfo.Usergroupid = usergroupinfo.Groupid;
_postpramsinfo.Attachimgpost = config.Attachimgpost;
_postpramsinfo.Showattachmentpath = config.Showattachmentpath;
_postpramsinfo.Hide = 0;
_postpramsinfo.Price = 0;
_postpramsinfo.Sdetail = __userinfo.Signature;
_postpramsinfo.Smileyoff = 1;
_postpramsinfo.Bbcodeoff = 1 - usergroupinfo.Allowsigbbcode;
_postpramsinfo.Parseurloff = 1;
_postpramsinfo.Showimages = usergroupinfo.Allowsigimgcode;
_postpramsinfo.Allowhtml = 0;
_postpramsinfo.Smiliesinfo = Smilies.GetSmiliesListWithInfo();
_postpramsinfo.Customeditorbuttoninfo = Editors.GetCustomEditButtonListWithInfo();
_postpramsinfo.Smiliesmax = config.Smiliesmax;
__userinfo.Sightml = UBB.UBBToHTML(_postpramsinfo);
//
__userinfo.Authtime = Utils.GetDateTime();
//邮箱激活链接验证
if (config.Regverify == 1)
{
__userinfo.Authstr = ForumUtils.CreateAuthStr(20);
__userinfo.Authflag = 1;
__userinfo.Groupid = 8;
//SendEmail(tmpUsername, DNTRequest.GetString("password").Trim(), DNTRequest.GetString("email").Trim(), __userinfo.Authstr);
}
//系统管理员进行后台验证
else if (config.Regverify == 2)
{
__userinfo.Authstr = DNTRequest.GetString("website");
__userinfo.Groupid = 8;
__userinfo.Authflag = 1;
}
else
{
__userinfo.Authstr = "";
__userinfo.Authflag = 0;
__userinfo.Groupid = UserCredits.GetCreditsUserGroupID(0).Groupid;
}
__userinfo.Realname = DNTRequest.GetString("realname");
__userinfo.Idcard = DNTRequest.GetString("idcard");
__userinfo.Mobile = DNTRequest.GetString("mobile");
__userinfo.Phone = DNTRequest.GetString("phone");
int uid = Users.CreateUser(__userinfo);
if (config.Welcomemsg == 1)
{
PrivateMessageInfo __privatemessageinfo = new PrivateMessageInfo();
string curdatetime = Utils.GetDateTime();
// 收件箱
__privatemessageinfo.Message = config.Welcomemsgtxt;
__privatemessageinfo.Subject = "欢迎您的加入! (请勿回复本信息)";
__privatemessageinfo.Msgto = __userinfo.Username;
__privatemessageinfo.Msgtoid = uid;
__privatemessageinfo.Msgfrom = PrivateMessages.SystemUserName;
__privatemessageinfo.Msgfromid = 0;
__privatemessageinfo.New = 1;
__privatemessageinfo.Postdatetime = curdatetime;
__privatemessageinfo.Folder = 0;
PrivateMessages.CreatePrivateMessage(__privatemessageinfo, 0);
}
if (config.Regverify == 0)
{
UserCredits.UpdateUserCredits(uid);
//ForumUtils.WriteUserCookie(uid, -1, config.Passwordkey);
OnlineUsers.UpdateAction(0, UserAction.Register.ActionID, 0, config.Onlinetimeout);
Statistics.ReSetStatisticsCache();
//SetUrl("index.aspx");
//SetMetaRefresh();
//SetShowBackLink(false);
//这里添加代码提示“注册成功, 返回登录页"并return退出
//...
//
return true;
}
else
{
//SetUrl("index.aspx");
//SetMetaRefresh(5);
//SetShowBackLink(false);
if (config.Regverify == 1)
{
//这里添加代码提示“注册成功, 请您到您的邮箱中点击激活链接来激活您的帐号"并return退出
//...
//
}
if (config.Regverify == 2)
{
//这里添加代码提示“您注册成功, 但需要系统管理员审核您的帐户后才可登陆使用"并return退出
//...
//
}
return true;
}
}
catch
{
return false;
}
}
public static bool Delete(string userName)
{
int uid = Users.GetUserID(userName);
if (Convert.ToInt32(uid) > 1) //判断是不是当前UID是不是系统初始化时生成的UID
{
int deluserid = Convert.ToInt32(uid);
AdminUsers.DelUserAllInf(deluserid, true, true);
return true;
}
return false;
}
public static bool ChangePassword(string userName, string password)
{
try
{
int uid = Users.GetUserID(userName);
return Users.UpdateUserPassword(uid, password);
}
catch
{
return false;
}
//UserFactory.UpdateUserPassword(uid, newpassword);
//ForumUtils.WriteCookie("password", ForumUtils.SetCookiePassword(Utils.MD5(newpassword), config.Passwordkey));
//OnlineUserFactory.UpdatePassword(olid, Utils.MD5(newpassword));
}
}
}

(0)

相关推荐

  • 基于.Net的单点登录(SSO)实现解决方案

    前些天一位朋友要我帮忙做一单点登录,其实这个概念早已耳熟能详,但实际应用很少,难得最近轻闲,于是决定通过本文来详细描述一个SSO解决方案,希望对大家有所帮助.SSO的解决方案很多,但搜索结果令人大失所望,大部分是相互转载,并且描述的也是走马观花. 闲话少叙,进入正题,我的想法是使用集中验证方式,多个站点集中Passport验证. 如下图所示:  为方便清晰描述,先定义几个名词,本文中出现之处均为如下含义. 主站:Passport集中验证服务器 http://www.passport.com/ .

  • ADO.NET制做一个登录案例

    总体思路.根据用户输入的用户名和密码,来判断,和数据库里面存的是不是一样,如果一样就表明登录成功,否则就登录失败. 方案一: 1.select* from 表名 where username="用户输入的用户名"  2.如果存在 reader.Read(),即用户名存在,接着就判断用户输入的密码,和取到的密码(reader.GetString(reader.GetOridinal("密码字段")))是不是一样,如果一样就登录成功,否则就登录失败. 方案二:  sel

  • asp.net BasePage类+Session通用用户登录权限控制

    但是很多人都喜欢在 复制代码 代码如下: protected void Page_Load(object sender, EventArgs e) {} 里面来写代码,甚至在某些按钮里面写判断session是否存在~~ 这样当然是能实现效果的,问题就在,如果有1000个页面~~你需ctrl+C...Ctrl+V 很多次~~~ 我的思路就是写一个BasePage类继承 System.Web.UI.Page 复制代码 代码如下: public class BasePage : System.Web.

  • ASP.NET 应用程序级 验证用户是否登录 一般处理程序

    大家应该都希望有一种应用程序级的简单处理程序,今天刚好被人问及,所以就简单写了下代码,具体步骤如下: 1.创建一个类库项目,名为IHandlers,名称自定义 2.在类库项目中添加[ASP.NET处理程序],名为HandleSession.cs.打开此文件,添加引用: using System.Web.SessionState 让HandleSession类继承接口IReadOnlySessionState. 以上两步是为了可以使用Session对象. 该类的完整代码如下: 复制代码 代码如下:

  • asp.net jQuery Ajax用户登录功能的实现

    主页面调用代码片段: 复制代码 代码如下: <asp:HyperLink ID="lnkLogin" runat="server" NavigateUrl="#" >登录</asp:HyperLink> <script language="javascript" type="text/javascript"> $('#<%=this.lnkLogin.ClientI

  • 一款经典的ajax登录页面 后台asp.net

    下面实现一个经典的登录页面,有保存密码功能,页面上所有的控件都是html控件,没有服务器控件 1,新建一名为login.htm的静态网页文件,作为登录页面,如图 body标签代码 Code highlighting produced by Actipro CodeHighlighter (freeware) http://www.CodeHighlighter.com/ --> 复制代码 代码如下: <body onkeydown ="enterLogin()"> &

  • ASP.NET登录注册页面实现

    如何利用Visual  studio 2010创建一个ASP网站? [文件]-->[新建]-->[网站]-->[ASP.Net网站]--[完成] 默认页面Default.aspx 创建以上界面: <%@ Page Language="C#" AutoEventWireup="true" CodeFile="UserLogin.aspx.cs" Inherits="UserLogin" %> <

  • asp.net利用cookie保存用户密码实现自动登录的方法

    本文实例讲述了asp.net利用cookie保存用户密码实现自动登录的方法.分享给大家供大家参考.具体分析如下: 在asp.net中可以用cookie保存用户的帐户密码实现自动登录的功能,但是需要强调一下,cookie在客户端保存,是不安全的,推荐使用md5加密保存. 下面分析一下在asp.net中cookie的创建.提取与销毁的方法: 创建cookie 复制代码 代码如下: //向客户端写入Cookie HttpCookie hcUserName1 = new HttpCookie("unam

  • 一个简单的asp.net 单点登录实现

    以下是实现的效果图:  首先上图的点击火车订票链接,就会打开http://学生信息平台网站/LoginToTrainSite.asa页面. LoginToTrainSite.asa页面的大致代码如下: 复制代码 代码如下: <% Response.Buffer = True Response.ExpiresAbsolute = Now() - 1 Response.Expires = 0 Response.CacheControl = "no-cache" Response.Ad

  • ASP.NET jQuery 实例11 通过使用jQuery validation插件简单实现用户登录页面验证功能

    简单来说,jQuery validation插件就是来校验表单form里面元素输入的内容是否满足业务规则,如果不满足,可以给出用户自定义的提示信息.该插件不仅默认有一些校验规则,如校验内容是否为空,内容的长度是否符合给定的值,还可以根据用户自定义业务规则,而且错误提示信息,也可以根据用户的要求自定义显示.看来这个插件的功能确实很强大,是不是迫不及待想使用了.好的,那我们就开始简介如何使用它. jQuery validation 插件下载地址:http://plugins.jquery.com/p

随机推荐