Widnows Live ID
Windows Live ID 是可以集成在应用中的身份验证系统。欲详细了解可访问 Windows Live Developer Center 或 Widnows Live ID。
为了简化服务端和客户端整合,服务采用工业标准的 SOAP 协议公开接口。
SDK 包括 服务端SDK(Relying Party Suite SDK),除了提供很多标准功能外,更重要的是其还提供了"配置刷新(configuration refresh)",可以根据条件(需要服务的用户地理位置等)自动选择最优的配置。
MSDN 也为 Windows Live ID Web Authentication 1.0 SDK 提供了帮助文档。
Web Authentication 工作原理是通过特殊格式的链接将用户信息发送到 Windows Live ID 登录页面。服务会给网站返回一个唯一的身份标识,可以通过唯一的身份标识执行管理个性化内容,赋予用户权限等操作,但 Windows Live ID Profile 数据是不与用户站点共享的。
1. 为 Windows Authentication 注册一个 Application ID。注册这项基本比较简单,如果当前只是处于测试阶段并不需要注册,因为 QuickStart Sample 用预定义的默认值作为 Application ID 。
2. 安装并运行测试
ASP.NET QuickStart Sample 默认的安装路径是 X:\Program Files\Windows Live ID\WebAuth ,并且预定义的 ReturnURL 是 默认的 ReturnURL 是 http://localhost/webauth/sample/webauth-handler.aspx ,所以如果想简单地测试效果的话在配置到 IIS 的时候把别名设置成 webauth 会比较方便。
如果想用自己注册的 Application 替换默认值,修改 web.config 文件即可。范例中的 WindowsLiveLogin.cs 文件就是 Windows Live ID 的类库了,可以通过源码或阅读参考手册来了解其它额外的功能。
3. 显示登录链接
4. 解密 Windows Live ID 返回的唯一标识符
5. 显式或者保存个性化设置
6. 注销用户
我最初的目的是想解决用户本机 Windows Live Messenger 已经登录的情况下网站可以得到其在线的状态和用户标识,网站页面可以识别用户的身份并允许最低权限的交互(高于匿名用户),对用户来说某些简单的交互对应着简单的操作,不需要频繁登录,但通过各种演示来看这是一个不可能的任务。比较折中的方法还是要使用 Windows Live ID 让用户通过 WEB 方式签入以便网站获得用户的标识,这样如果用户允许当前站点具备访问联系人权限的情况下站点才可以和用户共享数据,现在国内的 MSN 用户个人信息设置得不怎么详细,而且让用户相信你的站点并共享自己的联系人数据的难度也比较大,更何况费这么大劲只是获取当前登录的用户的一些资料感觉对于用户来说复杂度也不低于注册一个网站自己的用户了。