当前位置: 移动技术网 > IT编程>开发语言>.net > Discuz!NT 3与asp.net 整合的实例教程

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

2017年12月12日  | 移动技术网IT编程  | 我要评论

七星卡盟,sesemao,48个国际音标表

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

点击下载源码

如对本文有疑问,请在下面进行留言讨论,广大热心网友会与你互动!! 点击进行留言回复

相关文章:

验证码:
移动技术网