MVC3和ACS ClaimsIdentity

时间:2012-09-11 13:36:34

标签: asp.net asp.net-mvc-3 azure acs

我一直在使用Azure ACS,非常酷,我想我会在下一个项目中使用它。

我遇到的一个问题是,当我收到我的ClaimsIdentity时,它只是电子邮件和名称而空白......这是设计的吗?

是否有可能获得更多信息?我真的希望我可以使用用户提供服务的头像..

任何帮助都会很棒。

欢呼声。 STE。

2 个答案:

答案 0 :(得分:2)

退回的索赔几乎由身份提供商自行决定。每个人都可以返回不同的声明(有关每个身份提供者返回的内容的详细信息,请参阅http://msdn.microsoft.com/en-us/library/windowsazure/gg185971.aspx)。您只能保证获得每个身份提供商返回的“名称标识符”和“身份提供商”声明。

http://msdn.microsoft.com/en-us/library/windowsazure/gg185933.aspx的更多有用信息。

答案 1 :(得分:1)

正如@mcollier所写,所提供的索赔通常取决于IdP提供的内容。但是,您可以在ACS中丰富安全令牌并添加任意声明。您可以编写一条规则:

“当有人使用 email=someone@gmail.com 向Google发送身份验证时,请使用值经理发出角色类型的声明”

所以你可以在这样的规则中添加任何东西(包括头像)。

ACS本质上是声明的“规范化”,它会将来自任何IdP的令牌中的声明转换为您的应用所能理解的内容。

请注意,您控制的IdP(例如您自己的ADFS服务器或公司的第三方IdP)可以提供其他声明。预先配置的通常是有限的(例如电子邮件,姓名,身份证)。

您可以使用ACS门户,API或第三方工具(使用API​​)(如Auth10)自行定义转换规则。