【发布时间】:2011-08-04 17:54:10
【问题描述】:
我有一个客户想要使用 Windows Live ID 委托身份验证 SDK 1.2 为其网站提供身份验证。
他们提出的架构是有一个数据库表,其中包含被授权使用该网站的用户的电子邮件地址。用户使用 Windows Live ID Web 身份验证登录后,他们希望将与该 Live ID 关联的电子邮件地址与表进行比较,并据此允许/禁止用户访问该站点。
这可能吗?我找不到任何有关如何获取与 Windows Live ID 关联的电子邮件地址的文档。
【问题讨论】:
-
IIRC 从护照时代开始,您几乎总是可以从用户属性(如 OpenID)中获取电子邮件,除非用户将其关闭,在这种情况下,您只会得到 64 位 int。不知道它是否仍然这样工作,但我认为没有办法保证它可用。
-
不是 100% 你想要的,但是使用最新的 Facebook-graph-like-API Windows Messenger Connect 的方法是在登录范围参数中请求“wl.emails”。尝试this example 并将
"wl.basics"编辑为"wl.basics, wl.emails"。 -
您可以尝试在 PS 参数中为您的 [msdn.microsoft.com/en-us/library/cc287661.aspx](delegation 请求传递
wl.emails。但是,如果您是从头开始而不是更新现有的 Live ID 应用程序,您可能应该只实现 Messenger Connect(API 的最新版本)。这里只是上面的wl.emails许可。但是,您总是可以在用户首次登录时询问他们的电子邮件并向他们发送验证链接,然后以这种方式发现它? -
这是一个选项。但是拥有 Live ID 的人就不能拒绝将他们的电子邮件发送到网站吗?只有其他选项是两步验证然后注册过程。
标签: c# asp.net-mvc windows-live-id