随笔 - 24  文章 - 1  评论 - 72 

@博文仅供学习研究,所提供的代码希望大家慎用。请大家保护康盛创想公司以及Discuz!NT的知识产权,遵守相关协议。

 

首先我在这里列出一些相关的参看资料,这也是我在改造的时候参考过的东西。

 

 

Live ID

 

Live ID 的开发者平台

http://dev.live.com/contacts/

Live ID MSDN

http://msdn.microsoft.com/en-us/library/bb463989.aspx

示例的下载

http://www.microsoft.com/downloads/details.aspx?FamilyId=A2466ABF-9629-42D8-B991-1D3FAF2FE872&displaylang=en

刘学老师的 Live ID API的讲座

http://msevents.microsoft.com/CUI/EventDetail.aspx?EventID=1032384439&Culture=zh-CN

K_Reverter的Accout的项目

http://www.cnblogs.com/step1/archive/2009/01/11/1373865.html                                            

Live ID API的申请页面

 https://msm.live.com/app/default.aspx  (这个简洁一些)

http://go.microsoft.com/fwlink/?LinkID=130560

 

 

DiscuzNT

 

DNT的下载页面

http://www.comsenz.com/downloads/install

DNT官方论坛

http://nt.discuz.net/

DNT的资料页面

http://faq.comsenz.com/usersguide/nt

代震军老师的系列博文

 http://www.cnblogs.com/daizhj/category/116704.html

 

 

Live ID API

 

 

1.咱先说一下 Live ID API

 

Live ID API,其实在很早以前就有过类似的产品,但当时微软还对这项服务还收取费用,随着MSN越来越普及,还有hotmail邮件用户的增多,以及云计算平台概念的提出,微软在去年四月份公布了自己的Live 计划,而在今年,Live又被整合到了微软的Azure云计算平台中。

 

Live ID API给其他的网站提供了一套身份验证极致,以及微软的联系人列表的访问。

简单地说,Live ID API 就有两个接口,一个是身份验证的login,另外就是访问联系人列表的接口。当然,我很奇怪,都一年多了,还是beta版本,而且两个版本分得特别开。我在后面会详细提到。

 

通过login的借口,微软的Live Server会给我的站点一个user.id。这个并不是大家想当然的用户的Live ID号。这是个类似密码的东西,他不仅仅对每一个用户是唯一的。如果你申请了Live ID API,同一个用户在你的站点上留下的User.id,和在别的使用Live ID API的网站中留下的user.id都是不同的。

而他也是我们的站点需要保留的,通过它,我们就可以验证这个用户是否权限访问我们的网站了。

 

2.Live ID API的大致流程

大致的流程是这样的。

1.       用户来动我们的站点,然后通过我们站点提供的地址访问一个登陆页面。

2.       用户登陆了,Live Server给我们的网站一个 user.id

3.       我们看看,诶,这不是那个老张吗,常客常客,然后打开大门。

4.       Live Server把页面返回到我们的页面,然后我们的页面对用户开放了。就这么简单。

 

我感觉,Live ID更像是看家狗一样。

 

但是同样问题也就来了。因为login的接口告诉我们的只有这个user.id。其他的呢,sorry,这里你就需要用到联系人列表了。

不知道大家去没去过开心网。在开心网上,大家输入自己的MSN账号,然后开心网就能自动导入你所有的联系人列表。

可能这样的大网站和微软都有协议,所以我们只要输入就可以了。而对于小站点来说,当你需要访问用户的联系人列表时,就需要经过用户的同意,然后Live Server就会把联系人列表返回到这个网站上了。

 

同样,我们也可以通过这个功能来获取每一个用户的联系信息。

所以联系人列表的接口,就给我们提供了方便。

 

3.Live ID API的申请,还有一些主要参数的介绍

 

 

   Application Name 是你的应用的名称

   Return URL 返回的地址,就是在成功登陆,或者访问地址本后,要返回的页面 不过这个在后面的实际编码过程中,都可以修改

   Domain Name 这个你的应用的,域名域

   Secret Key 秘密字符串,也就相当于密码了

 

   不过使用这个API在实际操作中,并没有想象中的便利。在后面的文章我会提到的。

  有朋友说,这部分讲的很乱,我承认。身份验证应该是一个很重头的地方,对于一个网站来说。而这次要引入第三方的验证极致,当然会让人比较晕。我一开始也挺糊涂,不过建议大家最好去下两个Live ID API 的sample。代码都很简单,看一遍基本上就都懂了。

 

 

DiscuzNT

 

1.我眼中的Discuz!NT

我想这个应该不用提了吧!虽然大家了解的更多的是她的PHP版本。但是实际上.NET的版本也是非常优秀的(他们说的)。

这里,我想说一些对于这个改造的实现来说的一些重要的内容。

 

a.怎么说呢!我承认,DiscuzNT的架构设计非常优秀。但是有点固步自封了一些,而且为了实现自己的一些功能,而丧失和很多其他网站兼容的便利。首先就是数据库。如果一个网站要整合DiscuzNT的论坛,除非一开始就使用DiscuzNT的数据库,不然真的做起来着实需要花一些功夫。

 

b.其次他并没有用很多具有.NET平台特色的东西。比如MasterPage,对于类似我这样的菜鸟,这个东西在初学的是经常要用的。当然,还有很多其他的东西。

我建议大家打开DiscuzNT的源代码,然后打开一个aspx页面。如果以前没看过,你不蒙才怪呢!

 

我们都知道,.NET的原理是,首先通过.NET framework对我们的aspx页面解析,然后把他们编译成html页面发送到客户端上。而DiscuzNT的可好,直接做一个大的服务器控件,反而把所有的html的内容,嵌入到这个服务器控件中去。所以出来的效果一定可以完整保留html设计的东西。这对于很多使用html技术的站长来说是天大的好事。因为这样可以使用简单地使用HTML来编辑我们的页面。

可是我就是在是搞不懂了,老大,没看到这么多高校中都开了asp.net的课吗?有必要那么吝啬吗?如果用MasterPage对于.NET程序员来说,更容易编辑。(这当然纯属牢骚了,因为后面在改外观的时候费了好大的劲)

 

我总认为,DiscuzNT是披着一层.NET皮的PHP

 

c.再次是他的整个构架。

我并没有说DiscuzNT不好,我的牢骚更多的处于自己的.NET程序员身份。DiscuzNT为实现一些自己的功能,可谓是煞费苦心。但是也得说,整个架构非常紧凑,如果第一次感觉不理解,多看几遍,就会感觉好很多。

这里特别想说一下DiscuzNT的地址转换。其实博客园也用到了HttpModeul,这在我们一般的开发中并不常见到,刚一开始我很不习惯的。当然现在好了。

关于DiscuzNT的模板系统(就是aspx页面中的那些html)还有这个地址转换,都在代震军老师的博客中有介绍过。大家可以去那里详细学习。

 

可是这也太过于封闭了。比如我们要进行编辑,总会受到他的一些限制。我在这个过程中,体味颇深,好几次差点放弃了,不过最后还是找到了解决的方法。

 

d.DiscuzNT开源仍然是犹抱琵琶半遮面。

DiscuzNT开源。我不是很了解开源,但是感觉Discuz!NT的开源就是给你一个毛坯。就那个一个简单的例子,加入我们去下载到DiscuzNT的源码,然后你用VS打开,然后发布Disney.Web项目,你是不可能得到在网上发布的DiscuzNT产品的。

用户的朋友都知道DiscuzNT有一个非常傻瓜的安装系统。可是我至今都没搞明白这个安装系统到底是怎么完成的。

源码我也看了,对HttmModeul的开启,然后数据库的部署,然后写入管理员账户。

我还监听了整个网站根目录文件夹,然后我自己手动来做这些东西,还是不成功。

 

当然我也在DiscuzNT的官方论坛发了帖子,代老师、戏水老师也发了邮件。结果论坛的帖子石沉大海,代老师基本上没回应,戏水老师一句“你可以看源代码”就直接把我打发了。也不知道是真的不想告诉我,还是瞧不起我。

这里是在开玩笑的,戏水老师不要当真,等您闲了,那个问题得向您好好讨教讨教

不过菜鸟也有菜鸟的方法。首先我们可以用一个DiscuzNT产品进行安装。然后我们可以替换掉bin文件夹,这样就可以完成对源码的修改了。如果想改其他的,安装好了以后自己动手就行了,效果一样。

 

说了这么多Discuz!NT的坏话,戴老师,您别生气啊!

也许你会说,选别的不行啊!不行,就因为这个是Discuz!NT国内最优秀的开源论坛,这样做做出来才有意义,才有挑战,最后完成后,的征服感越强。 

 

 

好了下一篇来介绍整个系统的一些大致的代码

 

posted on 2009-03-14 21:01 游利卡 阅读(824) 评论(1) 编辑 收藏