您现在的位置是:首页 > cms教程 > Discuz教程Discuz教程
Discuz!NT论坛整合使用membership登陆信息的方法
吴军卓2025-07-16Discuz教程已有人查阅
导读公司最近开发的项目,有论坛,要求采用Discuz!NT,做用户整合,因dnt采用自己的用户管理,无法与membership用户整合,多次试验,通过修改ForumUtils.cs文件
公司最近开发的项目,有论坛,要求采用Discuz!NT,做用户整合,因dnt采用自己的用户管理,无法与membership用户整合,多次试验,通过修改ForumUtils.cs文件,将GetCookie方法修改,则可直接使用form验证,同时将注册,退出,登陆页面重新跳转到项目的相关页面即可.还需要删除修改口令,找回密码页面
当然,还需要在注册用户的同时,注册dnt用户Dnt用户相关代码,包括注册,登陆,登出
当然,还需要在注册用户的同时,注册dnt用户Dnt用户相关代码,包括注册,登陆,登出
public class UserManager
{
/// <summary>
/// 注册dnt用户
/// </summary>
/// <param name="username"></param>
/// <param name="password"></param>
/// <param name="email"></param>
/// <param name="nickname"></param>
/// <returns></returns>
public static bool Register(string username, string password, string email, string nickname)
{
GeneralConfigInfo config = GeneralConfigs.GetConfig();
OnlineUserInfo oluserinfo = OnlineUsers.UpdateInfo(config.Passwordkey, config.Onlinetimeout);
UserGroupInfo usergroupinfo = UserGroups.GetUserGroupInfo(oluserinfo.Groupid);
UserInfo userinfo = new UserInfo();
userinfo.Username = username;
userinfo.Nickname = nickname;
userinfo.Password = Utils.MD5(password);
userinfo.Email = email;
userinfo.Secques = "";
userinfo.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.Bday = "";
userinfo.Sigstatus = 1;
userinfo.Tpp = 0;
userinfo.Ppp = 0;
userinfo.Templateid = 0;
userinfo.Pmsound = 1;
userinfo.Showemail = 0;
userinfo.Newsletter = ReceivePMSettingType.ReceiveAllPMWithHint;
userinfo.Invisible = 0;
userinfo.Newpm = 0;
userinfo.Medals = "";
if (config.Welcomemsg == 1)
{
userinfo.Newpm = 1;
}
userinfo.Accessmasks = 0;
userinfo.Website = "";
userinfo.Icq = "";
userinfo.Qq = "";
userinfo.Yahoo = "";
userinfo.Msn = "";
userinfo.Skype = "";
userinfo.Location = "";
userinfo.Customstatus = "";
userinfo.Avatar = @"avatars\common\0.gif";
userinfo.Avatarwidth = 0;
userinfo.Avatarheight = 0;
userinfo.Bio = "";
userinfo.Signature = "";
PostpramsInfo postpramsinfo = new PostpramsInfo();
postpramsinfo.Usergroupid = oluserinfo.Groupid;//7
postpramsinfo.Attachimgpost = config.Attachimgpost;//1
postpramsinfo.Showattachmentpath = config.Showattachmentpath;//0
postpramsinfo.Hide = 0;
postpramsinfo.Price = 0;
postpramsinfo.Sdetail = userinfo.Signature;
postpramsinfo.Smileyoff = 1;
postpramsinfo.Bbcodeoff = 1 - usergroupinfo.Allowsigbbcode;//1
postpramsinfo.Parseurloff = 1;
postpramsinfo.Showimages = usergroupinfo.Allowsigimgcode;//0
postpramsinfo.Allowhtml = 0;
postpramsinfo.Smiliesinfo = Smilies.GetSmiliesListWithInfo();
postpramsinfo.Customeditorbuttoninfo = Editors.GetCustomEditButtonListWithInfo();
postpramsinfo.Smiliesmax = config.Smiliesmax;//5
userinfo.Sightml = "";
//
userinfo.Authtime = Utils.GetDateTime();
userinfo.Authstr = "";
userinfo.Authflag = 0;
userinfo.Groupid = UserCredits.GetCreditsUserGroupID(0).Groupid;//10
userinfo.Realname = "";
userinfo.Idcard = "";
userinfo.Mobile = "";
userinfo.Phone = "";
int uid = Users.CreateUser(userinfo);
//根据积分公式刷新用户总积分
UserCredits.UpdateUserCredits(uid);
//写入用户登录后的cookie
ForumUtils.WriteUserCookie(uid, -1, config.Passwordkey);
//更新用户之后动作,如不需要可不执行
OnlineUsers.UpdateAction(oluserinfo.Olid, UserAction.Register.ActionID, 0, config.Onlinetimeout);
Statistics.ReSetStatisticsCache();
return true;
}
/// <summary>
/// 登陆论坛
/// </summary>
/// <param name="username"></param>
public static void Login(string username)
{
GeneralConfigInfo config = GeneralConfigs.GetConfig();
OnlineUserInfo oluserinfo = OnlineUsers.UpdateInfo(config.Passwordkey, config.Onlinetimeout);
int uid = Users.GetUserID(username);
//删除之前的错误登录信息
LoginLogs.DeleteLoginLog(DNTRequest.GetIP());
//根据积分公式刷新用户总积分
UserCredits.UpdateUserCredits(uid);
//写入用户登录后的cookie
ForumUtils.WriteUserCookie(uid, -1, config.Passwordkey);
//更新用户之后动作,如不需要可不执行
OnlineUsers.UpdateAction(oluserinfo.Olid, UserAction.Login.ActionID, 0, config.Onlinetimeout);
//更新该用户之后访问时间
Users.UpdateUserLastvisit(uid, DNTRequest.GetIP());
}
/// <summary>
/// 论坛退出
/// </summary>
public static void Logout()
{
GeneralConfigInfo config = GeneralConfigs.GetConfig();
OnlineUserInfo oluserinfo = OnlineUsers.UpdateInfo(config.Passwordkey, config.Onlinetimeout);
if (oluserinfo.Userid > 0)
{
Users.UpdateOnlineTime(oluserinfo.Userid);
OnlineUsers.DeleteRows(oluserinfo.Olid);
ForumUtils.ClearUserCookie();
}
}
/// <summary>
/// 帐号是否存在
/// 帐号导入时使用[临时]
/// </summary>
/// <param name="username"></param>
/// <returns></returns>
public static bool Exists(string username)
{
return Users.Exists(username);
}
ForumUtils.cs的修改
/// <summary>
/// 获得论坛cookie值
/// </summary>
/// <param name="strName">项</param>
/// <returns>值</returns>
public static string GetCookie(string strName)
{
//
// [add by wuhp] 2008-4-14
//
// 取Cookie中的用户id,
// 判断membership是否登陆,若登陆,获取membership当前帐号的userid
if ("userid".Equals(strName))
{
if (HttpContext.Current.User.Identity.IsAuthenticated)
{
if (HttpContext.Current.Items["dnt_userid"] == null)
{
HttpContext.Current.Items["dnt_userid"] = Users.GetUserID(HttpContext.Current.User.Identity.Name);
}
return HttpContext.Current.Items["dnt_userid"].ToString();
}
return "";
}
//
// [add by wuhp] 2008-4-14
//
// 取Cookie中的口令
// 判断membership是否登陆,若登陆,获取membership当前帐号的口令
if ("password".Equals(strName))
{
if (HttpContext.Current.User.Identity.IsAuthenticated)
{
if (HttpContext.Current.Items["dnt_password"] == null)
{
GeneralConfigInfo config = GeneralConfigs.GetConfig();
ShortUserInfo userinfo = Users.GetShortUserInfo(Users.GetUserID(HttpContext.Current.User.Identity.Name));
HttpContext.Current.Items["dnt_password"] = SetCookiePassword(userinfo.Password, config.Passwordkey);
}
return HttpContext.Current.Items["dnt_password"].ToString();
}
return "";
}
if (HttpContext.Current.Request.Cookies != null && HttpContext.Current.Request.Cookies["dnt"] != null && HttpContext.Current.Request.Cookies["dnt"][strName] != null)
{
return Utils.UrlDecode(HttpContext.Current.Request.Cookies["dnt"][strName].ToString());
}
return "";
}
本文标签:
很赞哦! ()
相关教程
- 帝国CMS包含登陆,注册,留言,反馈,点击刷新验证码代码写法
- 帝国cms二次开发邮箱或用户名登陆的实现方法
- MoinMoin Wiki与Discuz论坛的单点登陆整合方法
- phpsso与Discuz无法同步登陆的解决方法
- Discuz x3 UCenter实现同步登陆的方法
- Discuz的NT3.0API跨域登陆不用论坛的登陆页面
- Discuz_X1.5增加手机号码登陆的实现方法
- discuz nt整合登陆的方法
- PHPCMSV9两步实现修改后台管理登陆路径代码示例
- phpcmsV9实现QQ登陆OAuth2.0代码示例
- phpcms v9和discuz X3.1实现同步登陆退出论坛的方法
- PHPCMS提示\phpcms\modules\member\index.php用户登陆SQL注入漏
图文教程
Discuz<= 7.2 SQL注入漏洞分析
Discuz树大招风已成常态,不过对于其他整站程序何尝不是如此?是否曾记得大明湖畔的PHPCMS和DEDCMS万人破的场景,流行整站程序最重要的还是漏洞的快速响应。0x01 漏洞成因:
了解discuz,discuz环境搭建和部署
discuz是由comsenz出品的,一款使用php编写,以MySQL作为数据存储的社区建站产品,是由戴志康大学时期创始开发,2001年6月发布,如今已被200万网站用做社区建站系统
Discuz下拉树形框控件代码示例
昨天发现简单的改进的下拉树形框控件,和大家一起分享控件代码:使用方法:页面aspx代码:#region 初始化信息绑定
discuz自定义生成单页面的方法
在pc端,若要生成一个单页面,有一个比较方便的方法是生成新的专题页,然后diy其中的内容。不过这种做法有两个缺点1 url太过冗赘2 只有一个插入url代码功能,没有文本编辑功能
相关源码
-
(自适应)中英文双语外贸扬声器音响喇叭话筒网站模板免费下载为音响设备外贸企业设计的中英文双语网站模板,基于PbootCMS内核开发。适配扬声器系统、音频设备等产品的国际化展示需求查看源码 -
(自适应响应式)高端珠宝首饰奢侈品pbootcms模板下载本模板为珠宝首饰及奢侈品行业打造,采用PbootCMS内核开发,具备卓越的视觉表现力与商业转化能力。自适应设计确保在手机端呈现产品细节,后台数据实时同步,助您高效展示钻石查看源码 -
(自适应)平面设计网络工作室个人作品展示网站模板免费下载基于PbootCMS内核开发的响应式网站模板,为设计工作室、创意机构打造的作品展示解决方案。通过模块化布局与极简交互设计,呈现设计作品的视觉细节,支持作品分类、案例解析等多维度展示方式。查看源码 -
(自适应)蓄电池能源智能数码科技产品pbootcms模板源码下载本款基于PbootCMS开发的网站模板为蓄电池及能源科技企业设计,特别适合锂电池、储能系统、新能源电池等产品的展示与推广。查看源码 -
pbootcms(自适应)SEO优化排名服务公司网站模板核心定位为SEO排名服务商打造的营销型网站框架,集成PbootCMS开源系统的高效管理能力与SEO最佳实践方案,助力企业快速建立专业的技术服务形象。查看源码 -
HTML5响应式健身俱乐部pbootcms网站模板下载为健身俱乐部、瑜伽中心及运动场馆设计的响应式网站模板,采用PbootCMS内核开发,支持一键替换图文适配健身器材销售、瑜伽工作室等多类型运动健康产业。查看源码
| 分享笔记 (共有 篇笔记) |
