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

如果编码方面有不严谨的地方,还希望各位多多包涵,并给出中肯的意见。
整合需要在原项目中添加由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

(0)

相关推荐

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

    如果编码方面有不严谨的地方,还希望各位多多包涵,并给出中肯的意见. 整合需要在原项目中添加由Discuz!NT提供的 DiscuzToolkit语言包(c#) 另外为了方便整合,我还自己写了一个简单的项目DNTAddNETSNS,用来对Discuz!NT和SNS做一些简单的粘合. 现在向大家展示一下涉及API调用的一些代码片段: 复制代码 代码如下: //之间为DNT的整合代码 Try { Discuz.Toolkit.DiscuzSession ds = ConformityHandler.I

  • asp.net与Discuz!NT整合集成实例教程

    但在网上没有找到较详细的描述.方法倒是有很多种. 在此,我就将此次经历写出来,希望对您有用. 在看过这篇文章http://www.jb51.net/article/20851.htm和这篇文章http://www.jb51.net/article/20850.htm按上述文章的描述,先按discuz!nt的用户指南,在windows 2003下安装好论坛. 并以admin进去,添加apikey等. 然后用VS2008新建一项目,添加toolkit.dll和json的引用. 好了, 如果你认真看过

  • 使用ASP.NET创建线程实例教程

    使用 ASP.NET 创建一个线程的实现方法其实非常简单,只需将其声明并为其提供线程起始点处的方法委托即可实现.创建新的线程时,需要使用 Thread 类,Thread 类具有接受一个 ThreadStart 委托或 ParameterizedThreadStart 委托的构造函数.该委托包装了调用 Start 方法时由新线程调用的方法.创建了Thread类 的对象之后,线程对象已存在并已配置,但并未创建实际的线程,这时,只有在调用Start方法后,才会创建实际的线程. ASP.NET的Star

  • Discuz!NT数据库读写分离方案详解

    目前在Discuz!NT这个产品中,数据库作为数据持久化工具,必定在并发访问频繁且负载压力较大的情况下成 为系统性能的'瓶颈'.即使使用本地缓存等方式来解决频繁访问数据库的问题,但仍旧会有大量的并发请求要访问动态数据,虽然 SQL2005及2008以上版本中性能不断提升,查询计划和存储过程运行得越来越高效,但最终还是 要面临'瓶颈'这一问 题.当然这也是许多大型网站不断研究探索各式各样的方案来有效降低数据访问负荷的原 因, 其中的'读写分离'方案就是一种被广泛采用的方案.      Discuz

  • .Net Core项目中NLog整合Exceptionless实例

    目录 前言 概念 Exceptionless NLog 环境搭建 Exceptionless搭建 集成NLog 简单测试一下 总结 前言 在实际的.Net Core相关项目开发中,很多人都会把NLog作为日志框架的首选,主要是源于它的强大和它的扩展性.同时很多时候我们需要集中式的采集日志,这时候仅仅使用NLog是不够的,NLog主要是负责代码中日志的落地,也就是收集程序中的日志.类似的使用ELK(Elasticsearch+Logstash+Kibana)或EFK(Elasticsearch+F

  • ASP+AJAX+ACCESS数据库实例讲解三个步骤分享

    看完本篇ajax实例教程,我相信你也可以轻松做出一个初级的AJAX应用. 你也可以直接访问:http://www.jb51.net/codes/57017.html 下载ajax教程的源码示例. 好,下面我们就始一步步让你了解AJAX+ASP基础应用,我们将分三步讲解,如下. 1. 前台AJAX代码(javascript)的创建. 2. 后台服务端ASP AJAX代码的编写. 3. ASP+AJAX+数据库的实例演示及讲解. 第一步:前台AJAX代码(javascript)的创建. 我们先创建一

  • SpringMVC整合mybatis实例代码

    MyBatis 本是apache的一个开源项目iBatis, 2010年这个项目由apache software foundation 迁移到了google code,并且改名为MyBatis . 一.逆向工程生成基础信息 <?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE generatorConfiguration PUBLIC "-//mybatis.org//DTD MyBatis G

  • Visual Studio ASP.NET Core MVC入门教程第一篇

    ASP.NET Core MVC入门教程第一节课,具体内容如下 1.开始环境 visual studio 2017 社区版或其他版本.安装时勾选"Web和云"组中的"ASP.NET及网页开发"项和"其他工具"组中的".NET Core平台开发"项. 2.创建一个网页应用 (1)在 Visual Studio中, select 文件 >新建 >项目. (2) 在"新项目"对话框中的左面板中,点击&

  • Spring Boot整合RabbitMQ实例(Topic模式)

    1.Topic交换器介绍 Topic Exchange 转发消息主要是根据通配符. 在这种交换机下,队列和交换机的绑定会定义一种路由模式,那么,通配符就要在这种路由模式和路由键之间匹配后交换机才能转发消息. 在这种交换机模式下: 路由键必须是一串字符,用句号(.) 隔开,比如说 agreements.us,或者 agreements.eu.stockholm 等. 路由模式必须包含一个 星号(*),主要用于匹配路由键指定位置的一个单词,比如说,一个路由模式是这样子:agreements..b.*

  • [翻译]Scott Mitchell 的ASP.NET 2.0数据教程

    Scott Mitchell 的ASP.NET 2.0数据教程目录索引 01.创建一个数据访问 02.创建一个业务逻辑层 03.母板页和站点导航 04.使用ObjectDataSource展现数据 05.声明参数 06.编程设置ObjectDataSource的参数值 07.使用DropDownList过滤的主/从报表 08.使用两个DropDownList过滤的主/从报表 09.跨页面的主/从报表 10.使用 GridView和DetailView实现的主/从报表 11.基于数据的自定义格式化

随机推荐