当前位置: 首页 > 图文教程 > 网络编程 > ASP.NET > Discuz!NT 3与asp.net 整合的实例教程

ASP.NET
ASP.NET中Session丢失原因与解决方案小结
.net开发中的一些注意事项及小技巧
学习Asp.Net经常会用到的函数集
在.net App中集成COM组件的一些简单技巧
彻底放弃IIS让Apache也支持ASP.NET
[JS.IntelliSense]VS2007(Orcas) So Cool
Asp.net 2.0 ViewState原理
asp.net ajax 使用updatepanel进行更新后的提示
动态代理DynamicProxy 介绍
您可能不知道的.Net2.0小技巧
Asp.Net2.0技巧(续)
“黑盒测试管理”以外的编程经验片断
实例开发:ASP.NET创建网络相册
封装stream,在读写stream时提供事件通知
GIS开发随笔--GIS技术的一点理解和MapNet控件试验
利用隐藏帧打印url的方法比较
无刷新仿google波形扭曲彩色Asp.net验证码
存储过程编写经验和优化措施
编程技巧:.Net Framework
编程技巧OOPs:复制构造函数

ASP.NET 中的 Discuz!NT 3与asp.net 整合的实例教程


出处:互联网   整理: 软晨网(RuanChen.com)   发布: 2010-01-10   浏览: 271 ::
收藏到网摘: n/a

本次整合只针对NETSNS中的代码做了少许修改,完成了基本的和论坛同步注册,登陆和注销,信息获取,信息修改。为的是给各位Discuz!NT API爱好者做一个简单的API事例,供大家参考。 如果编码方面有不严谨的地方,还希望各位多多包涵,并给出中肯的意见。
整合需要在原项目中添加由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%>

点击下载源码 /upload/tech/20100110/20100110115856_33e75ff09dd601bbe69f351039152189.zip