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

  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());

  }

  }

  }

  }

  }