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

论坛域名是: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()); } } } } }
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值