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

 更新时间:2009年11月11日 01:01:32   作者:  
本次整合只针对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%>

点击下载源码 http://xiazai.jb51.net/200911/yuanma/dnt_netsns_src.zip

相关文章

  • .net 程序通过 crontab 无法启动手动执行脚本启动的方法

    .net 程序通过 crontab 无法启动手动执行脚本启动的方法

    .net 网关程序需要设置定时重启,按照日常操作先把正在运行的 PID kill 掉后,再执行启动服务。通过脚本无法启动,试着把 .net 程序写成服务后,发现是可以正常重启的,本文给大家介绍下.net 程序通过 crontab 无法启动手动执行脚本启动,感兴趣的朋友一起看看吧
    2021-12-12
  • ASP.NET笔记之Session、http、web开发原则、xss漏洞的详细介绍

    ASP.NET笔记之Session、http、web开发原则、xss漏洞的详细介绍

    本篇文章小编为大家介绍,ASP.NET笔记之Session、http、web开发原则、xss漏洞详细。需要的朋友参考下
    2013-04-04
  • Visual studio 2017如何发布dotnet core到docker

    Visual studio 2017如何发布dotnet core到docker

    这篇文章主要介绍了Visual studio 2017如何发布dotnet core到docker的相关资料,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2017-04-04
  • 浅析.net策略模式

    浅析.net策略模式

    这篇文章主要介绍了浅析.net策略模式,需要的朋友可以参考下
    2014-12-12
  • .net采用ajax实现邮箱注册和地区选择实例

    .net采用ajax实现邮箱注册和地区选择实例

    这篇文章主要介绍了.net采用ajax实现邮箱注册和地区选择的方法,以实例形式详细讲述了.net采用ajax的技巧,非常实用,需要的朋友可以参考下
    2014-10-10
  • ASP.NET 前后台调用方法

    ASP.NET 前后台调用方法

    ASP.NET前后台调用(转自上善若水,javaeye)
    2010-01-01
  • asp.net dataview做无限极分类的又一用法

    asp.net dataview做无限极分类的又一用法

    通常看到别人以及自己以前在绑定无限极分类的时候,总是需要多次连接数据库,这样觉得造成了资源的浪费,然后我想一次把所有数据先取出来(类型不是很多的情况),这样可以节省服务器的开销。
    2009-11-11
  • 二级域名Cookie问题的解决方法

    二级域名Cookie问题的解决方法

    今天博客园全面采用二级域名后,发现即使用户已经登录,但在访问二级域名Blog页面时都显示没有登录(表现为发表评论时要求输入验证码, 收藏功能无法正常使用),再次登录后,进入其他二级域名还是需要登录。
    2008-10-10
  • .Net 单例模式(Singleton)

    .Net 单例模式(Singleton)

    单例模式的意思就是只有一个实例。单例模式确保某一个类只有一个实例,而且自行实例化并向整个系统提供这个实例。这个类称为单例类
    2013-07-07
  • VS2017 安装打包插件的图文教程

    VS2017 安装打包插件的图文教程

    下面小编就为大家分享一篇VS2017 安装打包插件的图文教程,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2017-11-11

最新评论