DiscuzNT 論壇與主站的同步登入與退出

來源:互聯網
上載者:User

論壇網域名稱是: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());

}
}

}

}
}

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.