Passport 你的网站(在你的WebSite上实现MS Passport )上

web

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")
thisURL = "http://" & Request.ServerVariables("SERVER_NAME") & _
Request.ServerVariables("SCRIPT_NAME")

If oMgr.FromNetworkServer Then
   Response.Redirect(thisURL)
End If

If oMgr.HasTicket Then 'just doing basic auth; any ticket is accepted regardless of age
   ' signout uses a different site-global URL, assumes that this URL exists ...
   rURL = Server.URLEncode("http://" & Request.ServerVariables("SERVER_NAME") & _
   "/myPassport/loginOut.asp")
   Response.Write("欢迎你,你已登录!")
   'Will display sign-out link.
Else 'no Ticket, tell them to click Sign In
   rURL = Server.URLEncode(thisURL)
   Response.Write("请登录")
   'Will display sign-in link.
End If

'未登录显示 Sign In 的Logo否则会显示 Sign out 的Logo.
Response.Write(oMgr.LogoTag2("www.ccBoysvr.com"))

%>

基本逻辑是先判断是否已经登录,如果没有登录显示登录并处理登录,否则显示Sign Out按钮。
如果 oMgr.IsAuthenticated () 那么
   显示 "欢迎 "  & oMgr.Profile("Nickname")
否则
   oMgr.LoginUser "登录成功的返回URL"
     
SDK 文档中会有涉及到:
Implementing .NET Passport Single Sign-In
(网站上比较常用的登录方式的实现)
Implementing Kids Passport
(连小孩子都考虑到了,不过此举比什么浏览器内容分级更好一些,可以针对专门的客户群,MS这一点真的很领先,考虑周到)
Express Purchase Implementation Guide
(EP最近被发现有漏洞,刚关闭后正在修复,虽然中国的国情不同,但是在外国EP最近发展的很不错,中国都已加入WTO了,这方面要加快哦。)
.NET Passport Cobranding Overview
(有关登录时,如何定制登录界面的公司brand的,下面第三点我们会看到一些)
另外Specific Implementation How-tos 这一节一定不要放过,是否能够理解标志着你掌握Passport的深度(个人观点)。
http://msdn.microsoft.com/library/default.asp?url=/library/en-us/ppsdk21/Implementation/Passport_Implementation.asp

结束这一小节前我附上一张更容易理解Passport的图片,也许通过图你能更好的理解Passport本身:

When a user requests a secured page from a site using Passport, the site redirects the user to a Passport server for authentication. Once the user has been authenticated, he or she is sent back to the calling site. All communications between the Passport site and participating sites go through the user's browser, using encrypted cookies and query strings.
(图片出处www.vbpj.com 作者:Jon Rauschenberger Email:jrausch@claritycon.com)

我感觉中Microsoft Passport SDK 2.0文档已经是很齐全和详细,所有的步骤和细节都有写进去,如果我写得多了,就有摘抄的嫌疑了(haha),唯一有一点不好就是本地安装的SDK居然没有这个文档,所有的文档和帮助都必须去MSDN的网站看(多么可恶,难道不要电话费吗?)
http://msdn.microsoft.com/library/default.asp?url=/library/en-us/ppsdk21/Implementation/Passport_Implementation.asp

时间: 2024-10-28 04:35:54

Passport 你的网站(在你的WebSite上实现MS Passport )上的相关文章

Passport 你的网站(在你的WebSite上实现MS Passport )下

web 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带

空间-怎样把自己做好的网站上传到服务器上

问题描述 怎样把自己做好的网站上传到服务器上 域名 空间什么的 求大神告知 想做一个论坛 不知道怎么申请域名空间 求完整的流程 谢谢谢谢 解决方案 很简单,在网上找一个域名代理商,联系域名空间事宜.论坛有很多现成的(比如PHP的),改一下模板就可以直接用了不需要开发.域名空间OK之后,把你的发布的文件直接通过ftp等方式上传到Web服务器即可. 解决方案二: 去西部数码或者其他的服务器运营商的网站上租个虚拟主机,他们就会告诉你ip地址,然后用ftp工具吧你的网站程序上传上去,你可以让运营商的 客

ftp-java web做的网站上线,已经把域名解析到服务器IP上,把程序上传到FTP中,但是网站打不开

问题描述 java web做的网站上线,已经把域名解析到服务器IP上,把程序上传到FTP中,但是网站打不开 前几天也问过这个问题,但是问题依旧,下面是tomcat日志报的错,大神看看这是什么问题 2015-6-19 9:43:18 org.apache.catalina.core.StandardContext filterStart 严重: Exception starting filter structs2 java.lang.UnsupportedClassVersionError: co

网站在本地测试是好的,但是上传到远程服务器上出错?

问题描述 网站在本地测试是好的,但是上传到远程服务器上出错?在百度上面搜索了半天也没有找到答案,网址:http://www.66880.net.cn/运行时错误说明:服务器上出现应用程序错误.此应用程序的当前自定义错误设置禁止远程查看应用程序错误的详细信息(出于安全原因).但可以通过在本地服务器计算机上运行的浏览器查看.详细信息:若要使他人能够在远程计算机上查看此特定错误信息的详细信息,请在位于当前Web应用程序根目录下的"web.config"配置文件中创建一个<customE

callback-.net网站本地调试,出现这些代码,系统上又没有这些js代码,求助

问题描述 .net网站本地调试,出现这些代码,系统上又没有这些js代码,求助 20C 用HTML查看,被附加了这两个js文件: src=""//hm.baidu.com/hm.js?40f4f46e503a18f9aa5ddaedd2ef5979"">还有: var _hmt = _hmt || [];(function() {var hm = document.createElement(""script"");hm.

把.net网站做成一个安装包可以在Android手机上下载安装

问题描述 把.net网站做成一个安装包可以在Android手机上下载安装,具体的需要怎么实现需要什么技术 解决方案 解决方案二:Android本身系linux体系,所以问题就转化为linux上如下下载.net网站的安装包linux上开个http服务器就ok了,关于http服务器可以自己做,无非就是80端口监听httprequest,又或者用apache直接上个网站提供下载,ftp/sftp都ok,随你怎么搞解决方案三:能不能具体点没有接触过关于这个的问题麻烦了谢谢解决方案四:我要的不是把整个网站

Zulily正准备关闭其英国网站,将重心转移到跨境业务上

摘要: 1月9日消息,日前,美国母婴服装特卖网站Zulily的CEO Darrel Cavens在对外透露,Zulily正准备关闭其英国网站,将重心转移到跨境业务上. 亿邦动力网了解到,除英国外,Zulily在加拿大和澳 1月9日消息,日前,美国母婴服装特卖网站Zulily的CEO Darrel Cavens在对外透露,Zulily正准备关闭其英国网站,将重心转移到跨境业务上. 亿邦动力网了解到,除英国外,Zulily在加拿大和澳洲均有销售业务,但英国是其唯一一个在当地设有自己的区域官网和分公司

网站优化新手做本地seo博客 快速上首页的关键点

之前在A5,我给大家分享了很多seo知识干货.今天,seo奇兵给大家聊一下:seo新手做本地优化博客迅速上首页的几个关键点. 1.租用独立IP的虚拟主机,尽量用大品牌的. 独立IP能避免同IP下垃圾站多导致搜索引擎评价差的问题;找大品牌会获得可靠稳定的服务,出问题几率较小.很多seo新手开始图便宜买小品牌空间商的空间,后来人都跑路了或者网站被黑,网站优化的努力前功尽弃! 2.起一个个性十足的网站品牌名,并注册com域名. 起个性名字好处一个是com域名可能别人还没注册过,再一个是个性的名字很容易

哪些网站会在百度搜索右侧“其他人还搜”上展现

中介交易 http://www.aliyun.com/zixun/aggregation/6858.html">SEO诊断 淘宝客 云主机 技术大厅 相信大家在平常搜索中经常会发现,有的时候搜索某个关键词,会在右侧出现"其他人还搜"这个版块,而且是图文展现的形式.昨天在维护网站的过程中偶然的机会弄清楚了其展现机制,这里分享给大家. 之前很多朋友也在群里问过"其他人还搜"的展现机制问题,昨天晚上偶然点进去其中的几个图片,发现了其展示的原理:提取了相关搜