|
整合需要在原項(xiàng)目中添加由Discuz!NT提供的
DiscuzToolkit語言包(c#)
另外為了方便整合,我還自己寫了一個簡單的項(xiàng)目DNTAddNETSNS,用來對Discuz!NT和SNS做一些簡單的粘合。
現(xiàn)在向大家展示一下涉及API調(diào)用的一些代碼片段:
復(fù)制代碼 代碼如下:
//之間為DNT的整合代碼
Try
{
Discuz.Toolkit.DiscuzSession ds = ConformityHandler.InitDiscuzSession();
ds.Register(ConformityHandler.CreateDiscuzNTUsername(ui.Email),ui.Password, ui.Email, false);
ret = User.Register(ui);//sns注冊,獲取注冊信息
}
catch(Discuz.Toolkit.DiscuzException d)
{
if (d.ErrorCode == 109)
{
ret = EnumRegister.EmailRepeat;
}
}
//
如上是利用DiscuzToolkit中的方法注冊用戶的一個實(shí)例。(源碼在Register.ASPx.cs中)
涉及到用戶的安全信息的操作,需要獲取AuthToken,獲取AuthToken需要請求論壇的login.ASPx?api_key=[key],然后論壇會通過GET形式返回給設(shè)置好的Callback地址一個AuthToken,整合時需要使用AuthToken的地方非常多,然而callback地址只能設(shè)置一個,針對此情況,我又專門新建了一個頁面dntapihandler.ASPx,此頁面沒有內(nèi)容,只用來做callback中轉(zhuǎn),即在Discuz!NT中設(shè)置callback地址為dntapihandler.ASPx。然后根據(jù)next參數(shù)確定最終返回的應(yīng)用程序頁面。
最后列出來被添加過整合代碼的頁面,方便大家看源碼。
復(fù)制代碼 代碼如下:
web.config
Global.asax
Register.ASPx
User/ default.ASPx
Login.ASPx
Logout.ASPx
AccountSet.ASPx
UserBase.ASPx
如上的頁面有的只改動了其.CS文件,有的都有修改。
如果想使用此整合項(xiàng)目,需要按照SNS的安裝說明安裝部署。而且為了實(shí)現(xiàn)同步登錄(由于SNS并沒有API,所以論壇方無法控制SNS的登錄),需要修改一個Discuz!NT模板login.htm,在里面添加如下代碼。
復(fù)制代碼 代碼如下:
<%csharp%>
If(Request["api_key"]==null&&Request.Form["username"]!="admin")
Response.Redirect(【SNS的登錄頁面路徑】);
<%/csharp%>
點(diǎn)擊下載源碼 http://xiazai.jb51.NET/200911/yuanma/dnt_NETsns_src.zip
AspNet技術(shù):Discuz!NT 3與asp.net 整合的實(shí)例教程,轉(zhuǎn)載需保留來源!
鄭重聲明:本文版權(quán)歸原作者所有,轉(zhuǎn)載文章僅為傳播更多信息之目的,如作者信息標(biāo)記有誤,請第一時間聯(lián)系我們修改或刪除,多謝。