Windows Live ID总结

 

·         研究Windows Live ID SDK,尤其是Web authentication delegated authentication (还有一个client authentication,适合window form程序)

Ø  web authentication: 适用内网(条件:只要User能够访问到内网的web server和外网 )和外网,这种验证方式只有验证登录的功能,不能为后续得到其他信息(比如登录以后,我希望得到好友列表)提供接口.

简化流程:

(1)用户请求登录a

(2)我们的web serverbuild一个网址给用户,使用户redirect到类似 www.login.live.com(后面带参数,这个属于Live ID SDK的一个过程,部分)的网址进行登录

(3)输入的用户名和密码,如果在Live ID服务器中验证通过,Live ID服务器自动会把用户redirect到一个叫做’returnURL’的网址(这个网址是在我们申请AppID的时候必须要填写的,AppID是每个希望使用Live ID SDK的第三方为自己的应用程序必须申请的)

 

【总结】web authentication整个过程中,我们的webserver没有直接和Live ID 服务器打交道,所以是不需要连接到外网的要求。

 

Ø  delegated authentication: 适用内网(有条件,后面说)和外网,这种验证方式除了提供验证Live ID登录以外,同时还为Windows Live User Data SDK(目前这个User Data包含三类资源,Contacts, webdev photo,  data storage)的使用进行一个代理验证。也就是说如果要使用Windows Live User Data SDK,就必须要用delegated authentication.

简化流程:

(1)用户请求登录

(2)我们的web serverbuild一个网址给用户(这一步跟web authentication原理一样,只不过参数跟多)

(3)如果用户名,密码通过,Live ID 服务器先把这个用户信息送到Live consent Service(这个service的目的就是让用户对我们的web server访问Live User Data进行授权),如下图

不过如果已经授权了,就会很快跳过,否则就是弹出一个授权页面让用户授权。

                                  

(4)如果第三步中用户同意授权给我们的web server,这个时候Live ID服务器将会把用户redirect到前面讲到的’returnURL’,这个时候我们可以根据返回参数做不同的操作(不同的authentication支持不同的操作,web auth支持log in, log out, clearcookie, delegated auth只支持delauth,delegated auth的例子中我在returnURL中做的事情是在验证通过以及用户授权之后,我通过Windows Live User Data SDKcontacts SDK去下载我的MSN好友列表,只需要把从delegated authentication中获得的token里相关的参数传入就可以(Delegated Token和LocationID)                               

 

【注】前面提到delegate auth支持内网,但是有一个条件,那就是domain name的问题:首先做web server的机器应该把C:/windows/system32/drivers/hosts文件中127.0.0.1 localhost修改为127.0.0.1 (your domain name),比如我这里就是修改成127.0.0.1 www.testdelauth.com, 然后每一个内网用户在访问我的网站之前必须在刚才的hosts文件中加入一行,格式就是 your IP address www.testdelauth.com 这样做的目的就是内网用户能够在DNS解析的时候知道www.testdelauth.com这个域名是你的IP,然后就可以访问自己做的web server 那么为什么web server要把hosts文件修改了,原因是在申请AppID的时候,如果是使用delegated authentication,除了要填写’returnURL’,还必须要填写domain name,并且这个domain name不能是IP地址,不能是localhost,并且也不能就是简单的机器名(一个字符串),它的要求是这么写的’full qualified domain name’J. 我认为这样叫做支持内网,也许有更好的方法,情况就是这样。

 

【总结】其实delegated authentication的过程也是webserver没有和Live ID 服务器,Live consent Service需要直接的访问,但是有个domain name的要求导致相对麻烦.

 

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值