Active directory 如何从Sitecore中的Active Directory用户获取用户ID?

Active directory 如何从Sitecore中的Active Directory用户获取用户ID?,active-directory,ldap,sitecore,Active Directory,Ldap,Sitecore,我们正在使用Active Directory管理Sitecore实例中的一些帐户。在数据库中,用户名采用domain\username格式(如您所料) 在Sitecore中,我可以 var user = User.FromName(item["__Created by"], true) 我得到了一个user对象,但我似乎无法在aspnet\u Users表中获得与用户关联的Guid 除了使用广告,我们没有做任何有趣的会员提供商 编辑:我可能应该声明:我已经获得了ProviderUserKey,

我们正在使用Active Directory管理Sitecore实例中的一些帐户。在数据库中,用户名采用
domain\username
格式(如您所料)

在Sitecore中,我可以

var user = User.FromName(item["__Created by"], true)
我得到了一个user对象,但我似乎无法在
aspnet\u Users
表中获得与用户关联的
Guid

除了使用广告,我们没有做任何有趣的会员提供商


编辑:我可能应该声明:我已经获得了
ProviderUserKey
,但它不是
aspnet\u Users
表中的
UserId
,如果它使用的是Sitecore附带的成员资格提供程序,那就完全不同了(如果有人感兴趣,它的类型为
System.Security.Principal.IdentityReference.SecurityIdentifier

如果不直接查询数据库,这是不可能的。您可以编写一个扩展方法来为用户查询数据库,但我建议不要使用API有意隐藏/抽象的数据库字段。如果您提供有关为什么要获取用户ID的更多信息,我们可能可以帮助您找到一些alternatives.

您使用的是Active Directory模块吗?您使用的是什么sitecore版本?如果您使用的是AD,我相信用户不会导入到aspnet\U users表,而是直接查询AD(因此缺少用户guid)。您到底想实现什么?我们通过将域用户添加到用户管理器,然后从那里进行限制,从而限制对内容编辑器中各种项目的访问。因此,这些项目将添加到aspnet_users表中,并具有用户ID(如添加为sitecore\users)。我想让该用户ID在其他地方使用。我想要它是因为我有一个单独的数据库存储数据,我想将它链接到该用户ID。我可能只需要这样做,它就可以使用用户名。谢谢。是的,我通常使用用户名或电子邮件(有时它们是相同的)。我通常不会创建从我的表到成员资格表的实际外键。相反,我会创建一个实用程序类和/或扩展方法来为我获取自定义数据对象。然后我会使用它。谢谢