尽管您可以在 ACS 中使用 Windows Live 作为身份提供者,但在某些情况下您不想使用它。您收到的用户 ID 取决于 ACS 命名空间。这意味着如果您的应用程序使用多个 ACS 命名空间(假设一个用于欧洲,一个用于美国),这可能会导致一些问题。
想象一下您的用户通过您的 USA 命名空间登录的场景。您的应用程序将收到该用户的 ID(哈希),您可能会在您的应用程序中为该用户创建一个配置文件。一周后,您的用户前往欧洲并可能通过您的欧洲命名空间登录。即使这是同一个用户,您也会得到该用户的另一个 ID(哈希),这看起来像是一个新用户,即使它不是。这是因为 ID(哈希)取决于 ACS 命名空间。
引用 MSFT 员工的话:
您从 ACS for Windows Live ID 收到的用户 ID 将特定于您的服务命名空间中的该用户。如果您使用不同的服务命名空间,您将为同一用户获得不同的值。因此,回答您的问题:* Labs ACS 和 Prod ACS [不同 ID]
更新:
要回复其中一条评论,您确实不会从 Windows Live 身份提供商那里获得电子邮件地址。但是您应该假设您无法控制从公共身份提供者那里获得的信息。一个好的做法是简单地依赖用户的标识符并为用户创建配置文件(您将在应用程序中管理配置文件)。当您从身份提供者处获得一些信息时,您已经可以更新个人资料,但如果此信息不可用,您应该简单地要求用户更新他/她的个人资料。请务必查看BlobShare示例以获取更多信息。