Passport 你的网站 (上) -------(在你的WebSite上实现MS Passport ) 小气的神 2001-11-12
Article Type: In-Depth
难度等级:4/9
版本:1.01
Passport 最早出现在1999年,当时只是为满足MS收购HotMail后作为邮箱的登录和授权服务,默默无闻。一年之后人们开始知道它了,真正引起争议的是MS在Hotmail张贴的一例用户使用条款,被认为侵犯个人的隐私和权利,事实上当时MS Messenger开始被人关注,而使用Messager的前提是你必须拥有一个Hotmail或MSN的Mail帐号,这一刻Passport开始展露头角。
接着 MSN Explorer 6.0正式为Passport正身,MS Messenger也接连不断的升级,一口气到了4.0。MS开始把Passport推上前台,不过那一时刻还很难把Passport和dotNET、WebService扯上关系。2001年7月13日,MSN的Hotmail网站更新,一切焕然一新,美丽的Web UI让人叹服,我开始感叹中国的Web Mail什么时候能做到这么漂亮。实际上, Passport 2.0 也在这之前Release,这是Passport的一次最重要的升级。同时人们开始从dotNET的迷幻中睁开眼睛,除了Visual Studio.NET,MS表明Passport将是dotNET的最早的一个实现,Passport已频繁出现在主要的技术报刊和杂志上,Passport已经和dotNET挂上了钩,不过怎么看也看不出来Passport会和dotNET有关,这其间MS已悄悄将Passport的database扩大了几次,做好各种技术上的准备了。
三个月后XP发布,PDC 2001召开,Visual Studio.NET Beta2 Release ,WebService已经蓬勃发展深入人心,一切突然清晰起来,15天以后MSN Explorer 7.0发布,MSN主站点迎来了近两年多的一次大改版,开始有评论认为发生变化了,有人已从MSN嗅出一种奇特的气味,这次改版改变到根了,MSN Explorer宣称可以和MSN网站真正的同步并且成为一个最美丽的Client,MSN Messenger让人新奇的发现Actions Plane,不久HailStorm被改称为Microsoft .NET My Services,Passport脱离HotMail,Messenger成为Microsoft .NET My Services的一员,MS表明今后所有Microsoft .NET My Services的关键是Passport,它将是所有Web站点和WebService的唯一的一种登录方式,而且未来它将会被发展成一个全球化用于授权的电子商务平台。几乎一夜之间MS所有的相关网站赫然出现Passport的WebUI,EP标志也出现在近160家的电子商务网站上。这时Passport用户已超过165,000,000个。
就在不久我也Download Passport SDK 2.0,我认为使用它很方便,作为一个开发者来说,把自己的网站实现Passport只需很简单的几步,并且对于用户来说无论是授权还是验证都会感到无比的熟悉和容易,他们会喜欢自己在某个网站上可以不需要填写太多的表格而完成一个交易或体验,就我各人来说,作为一个用户唯一的不便是我必须拥有一个MS的Passport帐号,如果能排除突起的那一点不服气心理,对于我那一点点的隐私是填写给MS还是Sun或是任何一个Web网站没有太大的不同;作为一个开发人员,我已厌烦了中国那些所谓的“网络安全应用方案提供商”的网络安全实现。老实说,我不能直接拒绝这些解决方案并大声的说NO,而另一方面我又很难说服自己我去喜欢它。
好吧,原谅我似乎离题太远了。让我们准备一下开始吧:
1。准备好我们的环境。
2。实现一个简单的Passport
3。切换并接触一下Microsoft® .NET My Services Manager。
1. 准备环境
我的环境:
Windows 2000 Advanced Service SP2 En
IIS 5 保证有一个站点可以访问。
Microsoft Passport SDK 2.0
MS Visual InterDev 6.0 或任何的ASP编辑器
网卡或Modem 必须保证你的机器可以联线访问Internet .
拥有一个真实的Microsoft Passport,最好试 @msn.com的
Microsoft Passport SDK 2.0可以去下面的网址获得。
http://msdn.microsoft.com/downloads/default.asp?url=/downloads/sample.asp?url=/MSDN-FILES/027/001/644/msdncompositedoc.xml&frame=true
NT4 ,IIS4 可以使用Microsoft Passport SDK 1.4
http://download.microsoft.com/download/iis50/Install/PPSDK1_4/NT45/EN-US/PPM_SDK_v1-4-2.EXE
W2K,IIS5 最好使用Microsoft Passport SDK 2.0
http://download.microsoft.com/download/Passport/Install/2.0/NT5XP/EN-US/PPM_SDK_V2.EXE
然后可以安装SDK,之后你需要建立一个Preproduction environment(PREP)。
先去http://current-register.passporttest.com/default.asp 登记获得一个PREP Passport ,然后你可以去http://current-login.passporttest.com/看是否可以登录成功。这个Passport不是真实世界的,当你登录一个真实世界的网站比如www.msn.com那么实际上你是登录到http://login.passport.com 而在PREP下实际上你登录的可能是http://current-login.passporttest.com/ 这是PREP Login server的地址。至于你如何控制你的用户在这两个地址直接切换将在Passport Administration Utility中进行设置,当然如果以后你知道也可以在注册表中直接进行修改。
然后需要检查作为你的客户端的IE或浏览器,最好是IE5以上,并且在选项中设置使用Cookies和SSL 并且支持javaScript.
更具体的你可以参看Microsoft Passport SDK 2.0文档:
http://msdn.microsoft.com/library/default.asp?url=/library/en-us/Dndotnet/html/myservpassp.asp?frame=true
整个设置和dotNET环境可以没有一点关系,所以不需要任何dotNET的安装或相关文件。
之后可以启动Passport Administration Utility看到像下面这样。
2. 实现一个简单的Passport
简单的实现一个Passport,只用使用两到三个函数IsAuthenticated, LoginUser , LogoTag2, FromNetworkServer 等等。
比如MyPassport.asp :
<%
Dim oMgr, TimeWindow, ForceLogin, rURL
Set oMgr = Server.CreateObject("Passport.Manager")
th