以编程方式从Azure ACS获取用户身份

时间:2012-08-15 16:28:22

标签: azure-acs

这个问题有点像诺贝尔,但我无法通过互联网找到这些信息(也许我错误地搜索了?)

我们已配置Azure ACS,并将其用作我们网站的身份验证服务。 但现在我们需要构建一个应用程序,通过已知的用户名和密码,它将从ACS接收用户声明。这可能吗?

1 个答案:

答案 0 :(得分:1)

是的,这是可能的。

有一点需要注意 - 使用ACS,您可以选择允许的各种不同的令牌提供程序(也称为STS-es)。其中每一个都为您提供了一组不同的声明,因此您可能需要丰富这些声明。

以下是一段代码,您可以尝试在代码中查看来自ACS的声明:

// NOTE: This code makes the assumption that you have .NET 4.5 on the machine.  It relies on 
// the new System.Security.Claims.ClaimsPrincipal and System.Security.Claims.ClaimsIdentity
// classes.

// Cast the Thread.CurrentPrincipal and Identity
System.Security.Claims.ClaimsPrincipal icp = Thread.CurrentPrincipal as System.Security.Claims.ClaimsPrincipal;
System.Security.Claims.ClaimsIdentity claimsIdentity = icp.Identity as System.Security.Claims.ClaimsIdentity;

// Access claims
foreach (System.Security.Claims.Claim claim in claimsIdentity.Claims)
{
    Response.Write("Type : " + claim.Type + "- Value: " + claim.Value + "<br/>");
}
亚当霍夫曼 Windows Azure博客 - http://stratospher.es Twitter - http://twitter.com/stratospher_es