为了账号安全,请及时绑定邮箱和手机立即绑定

如何从 Microsoft Graph API C# 中的电子邮件地址获取用户 ID

如何从 Microsoft Graph API C# 中的电子邮件地址获取用户 ID

C#
ABOUTYOU 2021-11-21 16:02:55
我想将用户添加到组中,但我没有用户的id,我只有电子邮件地址。这是代码:User userToAdd = await graphClient    .Users["objectID"]    .Request()    .GetAsync();await graphClient    .Groups["groupObjectID"]    .Members    .References    .Request()    .AddAsync(userToAdd);有人可以帮助我如何使用 Microsoft Graph 从电子邮件地址检索 ObjectId(用户 ID)?
查看完整描述

3 回答

?
HUWWW

TA贡献1874条经验 获得超12个赞

您可以通过几种不同的方式查找用户。


从/users端点,您可以使用他们的id(分配给每个帐户的 GUID)或他们的userPrincipalName(默认域的电子邮件别名):


// Retrieve a user by id

var user  = await graphClient

    .Users["00000000-0000-0000-0000-000000000000"]

    .Request()

    .GetAsync();


// Retrieve a user by userPrincipalName

var user  = await graphClient

    .Users["user@tenant.onmicrosoft.com"]

    .Request()

    .GetAsync();

如果您使用授权代码或隐式OAuth 授权,您还可以查找通过/me端点进行身份验证的用户:


var user = await graphClient

    .Me

    .Request()

    .GetAsync();


查看完整回答
反对 回复 2021-11-21
?
蝴蝶刀刀

TA贡献1801条经验 获得超8个赞

除了上面的这些正确答案。


userPrincipalName或者id不是外部电子邮件地址。这就是我手动完成注册时的情况。您可以使用此过滤器:


var user = await _graphClient.Users

    .Request()

    .Filter($"identities/any(c:c/issuerAssignedId eq '{email}' and c/issuer eq 'contoso.onmicrosoft.com')")

    .GetAsync();

源代码:https : //docs.microsoft.com/en-us/graph/api/user-list? view = graph-rest-1.0 & tabs =csharp


使用此配置创建用户:


Microsoft.Graph.User graphUser = new Microsoft.Graph.User

{

    AccountEnabled = true,

    PasswordPolicies = "DisablePasswordExpiration,DisableStrongPassword",

    PasswordProfile = new PasswordProfile

    {

            ForceChangePasswordNextSignIn = false,

            Password = accountModel.Password,

        },

        Identities = new List<ObjectIdentity>

        {

            new ObjectIdentity()

            {

                SignInType = "emailAddress",

                Issuer ="contoso.onmicrosoft.com",

                IssuerAssignedId = email

            }

        },

};



查看完整回答
反对 回复 2021-11-21
?
白衣非少年

TA贡献1155条经验 获得超0个赞

您可以使用iduserPrincipalName(这是一个电子邮件地址)从 Graph API 检索用户的详细信息。

来自Microsoft Graph API 参考

GET /users/{id | userPrincipalName}

您是否尝试将电子邮件地址用作objectID


查看完整回答
反对 回复 2021-11-21
  • 3 回答
  • 0 关注
  • 366 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信