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

来源:不详 责任编辑:栏目编辑 发表时间:2013-07-01 21:05 点击:
论坛域名是: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());
}
}
}
}
}

    相关新闻>>

      发表评论
      请自觉遵守互联网相关的政策法规,严禁发布色情、暴力、反动的言论。
      用户名: 验证码:点击我更换图片
      最新评论 更多>>

      推荐热点

      • 浅析.NET下XML数据访问新机制
      • asp.net 面试+笔试题目第1/2页
      • C# 邮件地址是否合法的验证
      • asp.net 设置GridView的选中行的实现代码
      • C#高级编程:数据库连接[1]
      • 经典C++程序1
      • IIS 自动回收导致后台定时器失效的问题解决
      • ASP.NET GridView列表代码示例
      • Asp.net MVC源码分析--Action Filter的链式调用
      网站首页 - 友情链接 - 网站地图 - TAG标签 - RSS订阅 - 内容搜索
      Copyright © 2008-2015 计算机技术学习交流网. 版权所有

      豫ICP备11007008号-1