我的Discuz!X2 、Ucenter 1.6、ASP.NET 应用程序整合经历
对于ASP.NET 程序员来说,去整合PHP的应用实在有点别扭,但那也没有办法,即然是做程序的这些是避免不了的,既然免不了,那就上吧
第一步:准备相关程序
1、下载DISCUZ X2 的程序
2、在windows 2003 中配置PHP环境
3、安装DISCUZ X2程序 ,选择全新安装(包括UCENTER 1.6)
4、下载 Ucenter 的.NET 版本的API . (http://ucenterapidotnet.codeplex.com/)
此应用程序是一位大侠修改的.NET 4.0。在此表示感谢。在他的博客中的有介绍ucenter 的一些通信原理,有兴趣的朋友可以去逛逛:
http://www.dozer.cc/2011/01/ucenter-api-in-depth-1st/
5、如果你的.net程序运行在4.0环境下,下载下来的源码中有个地方需要修改下。
ucapibase.cs 中 使用P3P协议的地方,源码如下:
Response.Headers.Add("P3P", 修改为:
Response.AppendHeader("P3P",
第二步:参考这里吧,我就不码字啦 http://www.cnblogs.com/CoreCaiNiao/archive/2011/08/25/2153434.html
如果以上通信成功啦!那么恭喜你,你已经完成了一半啦
到这里问题就出来啦,在www站点可以登录和退出,且和X2也同步登录和退出啦,但是X2的登录和退出根本不会同步WWW的登录和退出,经过一系统的监控手段发现。在X2中登录和退出均不调用应用管理中设置的API(即UC.PHP),我也不懂PHP代码,百思不得其解之下请出了百度大神,我搜啊搜啊终于找到了一个解决此问题的(非常规手段)原文链接 ,看下图吧
注意,在更新缓存时,不是UCENTER中的更新缓存,是工具的 如下图:
更新完缓存后,在进入X2论坛中进行登录和退出,居然会同步啦。如果是低版本的Ucenter 可能不会出现这个问题,这个我没有去测试
关于修改密同步的问题,我是这样解决的
在X2中修改的密码只能在X2中登录有效,当在主站修改了密码后,在主站登录时更新X2中的密码,然后在做同步登录。
记录一下,希望本文对你有用