找回密码
 立即注册
查看: 53|回复: 0

DiscuzNT 论坛与主站的同步登录与退出

[复制链接]
  • TA的每日心情
    开心
    5 天前
  • 签到天数: 62 天

    [LV.6]常住居民II

    200

    主题

    18

    回帖

    2553

    积分

    管理员

    积分
    2553
    发表于 2024-12-13 13:28:49 | 显示全部楼层 |阅读模式
    论坛域名是:forum.web.net(虚拟)
    网站域名是:www.web.net(虚拟too)
    先用管理员帐户进入论坛后台在基本设置中,将“身份验证Cookie域:”设置为.web.net
    论坛配置好后,复制bin文件夹的 Discuz.Forum.dll,Discuz.Entity.dll,Discuz.Data.dll,Discuz.Data.SqlServer.dll 和Discuz.Common.dll到网站的bin下。同样,DNT.Config也放到网站根目录
    贴个代码看,更清楚些。

    using System;
    using System.Collections;
    using System.Configuration;
    using System.Data;
    using System.Web;
    using Discuz.Forum;
    using Discuz.Common;
    using Discuz.Entity;

    namespace WebSite
    {
    public partial class _Default : System.Web.UI.Page
    {
    protected void Page_Load(object sender, EventArgs e)
    {
    //下面的判断作用是:检测cookie中是不是有论坛的userid,如果有就说明有用户登录
    if (Request.Cookies["dnt"] != null && Request.Cookies["dnt"].Values["userid"] != null)
    {
    //从cookie中获得UserID
    int uid = Convert.ToInt32(Request.Cookies["dnt"].Values["userid"].ToString());
    //得到这个用户的全部信息
    UserInfo a = Discuz.Forum.Users.GetUserInfo(uid);
    //打印出来看看对不对。
    Response.Write(a.Username);
    //这句代码是退出!清除Cookie!!!
    ForumUtils.ClearUserCookie();
    }
    else //没有用户?看我怎么登录的!
    {
    //先设俩变量
    string uname = "rohan";
    string upass = "mypassword";
    //验证用户登录 如果正确返回UserID,否则返回-1
    int uid = Users.CheckPassword(uname, upass, true);
    if (uid!=-1)
    {
    //下面都是官方整合说明文档里的内容了
    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));
    //这里我把config.Passwordkey直接从论坛config文件夹下的general.config文件的节点提取出来了。这样就不用把论坛的相关文件拷贝到网站上了
    ForumUtils.WriteUserCookie(uid, Utils.StrToInt(DNTRequest.GetString("expires"), -1), "R254842J4Z", DNTRequest.GetInt("templateid", 0), DNTRequest.GetInt("loginmode", -1));

    //更新该用户最后访问时间
    Users.UpdateUserLastvisit(uid, DNTRequest.GetIP());

    }
    }

    }

    }
    }

    来源:互联网
    免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!
    您需要登录后才可以回帖 登录 | 立即注册

    本版积分规则

    QQ|Archiver|手机版|小黑屋|软媒源码阁 |网站地图

    GMT+8, 2025-5-14 04:41 , Processed in 0.070515 second(s), 22 queries .

    Powered by RuanmeiHome X3.5

    Copyright © 2014-2025, 软媒源码阁

    快速回复 返回顶部 返回列表