首页 > 解决方案 > 我需要在单个传出声明中使用 c# 从 ADFS 获取所有用户详细信息

问题描述

嗨,我为此创建了自定义声明,因此请检查我创建的以下声明:

c:[Type == "http://schemas.microsoft.com/ws/2008/06/identity/claims/windowsaccountname", Issuer == "AD AUTHORITY"] =] issue(store = "Active Directory", types = ("http://schemas.xmlsoap.org/ws/2005/05/identity/claims/emailaddress", "http://schemas.xmlsoap.org/ws/2005/05/identity/claims/givenname"), query = "(&(objectClass=user)(objectCategory=person));mail,givenName;{0}", param = c.Value);

但在这种情况下,我在传出声明中收到了所有电子邮件(http://schemas.xmlsoap.org/ws/2005/05/identity/claims/emailaddress),还在另一个传出声明中获得了所有给定名称( http://schemas.xmlsoap.org/ws/2005/05/identity/claims/emailaddress /schemas.xmlsoap.org/ws/2005/05/identity/claims/givenname)。

请查看下面的屏幕截图,了解我现在如何使用 C# 代码从 adfs 中获取电子邮件和姓名的值。 https://docs.microsoft.com/en-us/answers/storage/attachments/137282-image.png

但是我需要一个传出声明,例如 email=abc@gmail.com、Givenname=abc(任何逗号分隔或任何分隔符),我需要一个传出声明中的电子邮件和名字。

我已经在 Microsoft Ignite 论坛中生成了相同的内容:https ://docs.microsoft.com/en-us/answers/questions/566015/how-to-get-all-users-of-adfs-with-all-attributes -e.html

您能帮我使用 Windows 帐户登录从 adfs 获取所有用户的详细信息并获取所有用户的详细信息吗?

谢谢

标签: c#-4.0ldapadfsclaimsclaims-authentication

解决方案


你不能开箱即用。

这不是索赔的工作方式。

您可以使用自定义属性 store

您还可以将声明合并为一个类型。

参阅“合并索赔值”下的内容。


推荐阅读