Passport 你的网站 (下) -------(在你的WebSite上实现MS Passport ) 小气的神 2001-11-12
Article Type: In-Depth
难度等级:4/9
版本:1.01
3. 切换并接触一下Microsoft® .NET My Services Manager。
这一节中,我们去接触一下Microsoft® .NET My Services Manager,为了方便我用了SDK带的例子AdventureWorks Samples(这个例子展示一些很实际的技巧和作法),其实我只使用了一些图片。另外MS也将这个例子放到了Internet上,你可以通过下面的地址去浏览和测试:http://adventureworks.passport.com/
目前的Microsoft® .NET My Services Manager还只能说是一个.NET My Services的雏形,像一个信息存储的小单元,存放有关你的Application的信息和设置,基本上它会成为以后 .NET My Services application的一个组成部分。原来的组件变成了现在的WebService,一些共享的信息无法放在注册表里了,有了这个.NET My Services Manager你可以存放许多必要的信息。另外根据Passport的规范,用户登录一次所有“participating Microsoft
® .NET Passport site”的信息都是共享的。另外各个Passport site之间可能会相互调用各自提供的WebService来实现自己Site的功能。所以MS设置了这个数据库,这样每个.NET My Services 应用都将登记到这个数据库中,Passport也就成了一个很核心和重要的入口和组成部分,每个.NET My Services Application都会在这个数据库中拥有一个SiteID,并且每个SiteID下的信息保证除了本身SiteID之外其他SiteID可以共享和使用。可以想像如果没有这个数据库和Passport,即使每个网站上暴露的WebService或.NET My Services恐怕不是每个人都敢调用它。Microsoft® .NET My Services Manager也设置了开发和发布产品的设置,方便了你的调试。从Preproduction rolled into Production 需要经过MS的审核,Sign a .NET Services agreement,之后你的Application正式发布。
值得高兴的是目前这些存储空间和SiteID的申请是免费的。你可以通过一个普通的有效Passport来申请得到。不过这个申请过程是极其痛苦和漫长的。你需要经过五个页面,然后需要填写下面的必选项目:
Technical Contact's First Name:Last Name:Title:Department:Address1:Country:Phone:E-Mail:Web Site Title :Domain Name :Production Domain Name :Default Return URL:Privacy Policy URL: Cobrand Image URL: (size:468 x 60)Cobrand Image URL: (size:102 X 80)Cobrand Instruction Text:Expire Cookie URL如果成功你会获得一个SiteID,并且建立好一个.NET My Services Application。好吧,去这个地址申请一个:https://siteservices.passport.com/
而我利用的是AdventureWorks Samples中的两幅图片awbanner468x60.jpg和aw_header102x80.gif,把它填写在Cobrand Image URL选项框中。
成功后你需要再次登录,选择你的.NET My Services Application,然后选择Manage My Applications,选择Download a Key,之后可以获得一个exe文件,在命令符下执行:
Partner###_#.exe /addkey
Partner###_#.exe /makecurrent /t 0 (###_#和你的SiteID有关)
然后将你的IIS服务停止。启动Passport Administration Utility,将其中的SiteID从0改成你的SiteID,重新启动你的IIS服务。
然后我是先用Passport SDK的自带的Passport Test进行测试,你可以发现原来的MS的Logo变成了你在Cobrand Image URL中设置的那副图了:
最好能用AdventureWorks Samples来测试一下,这个程序考虑得比较周到,会自动的从注册表中获得SiteID的值。下面的运行的结果。
你会发现原来的URL
http://current-login.passporttest.com/login.srf?lc=1033&id=1&ru=www.yoursite.com&tw=14400&kv=1&ct=1005697965&ems=1&ver=2.0.0248.1&tpf=2bad0084f7d730e36e8c74498b3a6cdd
变成了
http://current-login.passporttest.com/login.srf?lc=1033&id=yourSiteID&ru=www.yoursite.com&tw=14400&kv=1&ct=1005697965&ems=1&ver=2.0.0248.1&tpf=2bad0084f7d730e36e8c74498b3a6cdd
lc是语言版本,id就是SiteID;ru是你成功返回的URL,tw是参数
(另外注册SiteID时上面的许多URL或Domain Name需要你输入www.yoursite.com,如果你是在本机由没有www.yoursite.com,你可以这样试一下,修改你的hosts文件,将
127.0.0.1 localhost 修改成
127.0.0.1 www.yoursite.com
根据第二节中的描述Passport Server需要在你的机器上寻找Cookie )
最后祝你顺利。
未来任何想要和.NET My Services的交互或互操作,必须先实现Passport的验证和授权。Passp