Discuz!NT 3與asp.net 整合的執行個體教程_實用技巧

來源:互聯網
上載者:User
如果編碼方面有不嚴謹的地方,還希望各位多多包涵,並給出中肯的意見。
整合需要在原項目中添加由Discuz!NT提供的
DiscuzToolkit語言套件(c#)
另外為了方便整合,我還自己寫了一個簡單的項目DNTAddNETSNS,用來對Discuz!NT和SNS做一些簡單的粘合。
現在向大家展示一下涉及API調用的一些程式碼片段:
複製代碼 代碼如下:

//之間為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中的方法註冊使用者的一個執行個體。(源碼在Register.aspx.cs中)
涉及到使用者的安全資訊的操作,需要擷取AuthToken,擷取AuthToken需要請求論壇的login.aspx?api_key=[key],然後論壇會通過GET形式返回給設定好的Callback地址一個AuthToken,整合時需要使用AuthToken的地方非常多,然而callback地址只能設定一個,針對此情況,我又專門建立了一個頁面dntapihandler.aspx,此頁面沒有內容,只用來做callback中轉,即在Discuz!NT中設定callback地址為dntapihandler.aspx。然後根據next參數確定最終返回的應用程式頁面。
最後列出來被添加過整合代碼的頁面,方便大家看源碼。
複製代碼 代碼如下:

web.config
Global.asax
Register.aspx
User/ default.aspx
Login.aspx
Logout.aspx
AccountSet.aspx
UserBase.aspx

如上的頁面有的只改動了其.CS檔案,有的都有修改。
如果想使用此整合項目,需要按照SNS的安裝說明安裝部署。而且為了實現同步登入(由於SNS並沒有API,所以論壇方無法控制SNS的登入),需要修改一個Discuz!NT模板login.htm,在裡面添加如下代碼。
複製代碼 代碼如下:

<%csharp%>
If(Request["api_key"]==null&&Request.Form["username"]!="admin")
Response.Redirect(【SNS的登入頁面路徑】);
<%/csharp%>

點擊下載源碼 http://xiazai.jb51.net/200911/yuanma/dnt_netsns_src.zip
相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在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.