3 回答
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();
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
}
},
};
TA贡献1155条经验 获得超0个赞
您可以使用id
或userPrincipalName
(这是一个电子邮件地址)从 Graph API 检索用户的详细信息。
GET /users/{id | userPrincipalName}
您是否尝试将电子邮件地址用作objectID
?
- 3 回答
- 0 关注
- 366 浏览
添加回答
举报