Asp.Net站点整合Discuz论坛实现同步注册和单点登录
生活随笔
收集整理的這篇文章主要介紹了
Asp.Net站点整合Discuz论坛实现同步注册和单点登录
小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.
最近在一個小站中整合了Discuz論壇,查閱了些資料后實現(xiàn)了同步注冊和單點登錄。 Discuz是以虛擬目錄的方式加載網(wǎng)站中,整合Discuz到網(wǎng)站中進行安裝要注意一下幾個問題:
- Discuz所在的目錄需要添加NETWORK SERVICE 和IIS_User這兩個賬戶的權(quán)限。
- Discuz根目錄下的DNT.config文件需要修改,將<Forumpath>/</Forumpath>修改為<Forumpath>/BBS/</Forumpath>,BBS為虛擬目錄的名稱。
- 由于我網(wǎng)站用了第三方的控件,在webconfig文件中進行了相關(guān)設置,然后在訪問論壇時提示缺少程序集的引用,后來把第三方控件的dll加到Discuz下的bin目錄中得以解決。
下面說說怎樣實現(xiàn)同步注冊和單點登錄 其實在研究后發(fā)現(xiàn)很簡單,當然我現(xiàn)在做的只是同域的情況下,跨域的情況還沒研究,估計也不會很難,應該只是多了一個設置cookieDomain的過程。Discuz給我們提供了一個DiscuzToolkit的工具包,提供了很多API供調(diào)用,下面就一步步來吧。 1 安裝好Discuz論壇后,進入后臺管理,選擇擴展-》通行證設置-》添加整合程序設置
- 應用程序名稱:可以隨便輸入
- 應用程序Url地址:我填寫的是我站點的地址
- 登錄完成后返回地址:同上
2 記下生成的APIKey和密匙,在后面的代碼編寫中會用到
3 我將APIKey,密匙都配置在了webconfig文件中
- APIKey:value值為后臺生成的APIKey
- Secret:value值為后臺生成的密匙
- Url:value值為BBS的路徑
4 寫一個公共的BBSHelper類,將添加用戶,登錄,改密碼等方法封裝在里面。注意要引用命名空間Discuz.Toolkit
/// <summary> /// 同步Discuz論壇幫助類 /// </summary> public class DiscuzBBSHelper {private string _apiKey = string.Empty;private string _secret = string.Empty;private string _url = string.Empty;DiscuzSession _ds;public DiscuzBBSHelper(){_apiKey = ConfigHelper.APIKey();_secret = ConfigHelper.Secret();_url = ConfigHelper.Url();_ds = new DiscuzSession(_apiKey, _secret, _url);}/// <summary>/// 登錄/// </summary>public void Login(string userName,string pwd){int uid = _ds.GetUserID(userName);_ds.Login(uid, pwd, false, 100, "");}/// <summary>/// 登出/// </summary>public void Logout(){_ds.Logout("");_ds.session_info = null;HttpContext.Current.Session["AuthToken"] = null;}/// <summary>/// 創(chuàng)建用戶/// </summary>public void AddUser(string userName,string pwd){_ds.Register(userName, pwd, "", false);}/// <summary>/// 修改密碼/// </summary>public void ChangePWD(string userName,string oldPWD,string newPWD){int uid = _ds.GetUserID(userName);_ds.ChangeUserPassword(uid, oldPWD, newPWD, newPWD, "");} }5 在網(wǎng)站需要的地方調(diào)用該類中的方法即可,如下:
//同步論壇 DiscuzBBSHelper bbs = new DiscuzBBSHelper(); bbs.Login(username, pwd);總結(jié)
以上是生活随笔為你收集整理的Asp.Net站点整合Discuz论坛实现同步注册和单点登录的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: AutoLISP将多段线各个端点坐标写入
- 下一篇: java web分层的思想