2015-09-26 39 views
0

我正在尝试读取当前帐户的管理器。“我”的Azure AD图形API管理器始终为空

下面你看到代码中的代码被剪掉了读取“Me”对象的函数。 我已经在Azure AD帐户中设置了管理器并进行了双重检查。

管理器对象始终为空,尽管我可以在Azure管理门户中查看它。

有没有人解决这个问题?谢谢。

public async Task<Office365User> GetCurrentUser() 
    { 
     var currentUser = await this.Authentication.GetCurrentUser(); 

     var activeDirectoryClient = GetActiveDirectoryClient(); 

     var myAccount = await activeDirectoryClient.Me.ExecuteAsync(); 

     if(myAccount.Manager != null) 
     { 
      var managerAccount = await activeDirectoryClient.Users.GetByObjectId(myAccount.Manager.ObjectId).ExecuteAsync(); 
      if(managerAccount != null) 
      { 
       currentUser.Manager = managerAccount.ToOffice365User(currentUser.TenantId); 
      } 
     } 
     return currentUser; 
    } 

回答

1

尝试在获取用户时添加Expand(x=> x.Manager)。它在我搜索具有指定主体名称的用户的经理时帮助了我。

我想下面的代码片段可以对您有用:

var user = (User) await activeDirectoryClient.Me 
    .Expand(x => x.Manager) 
    .ExecuteAsync(); 

var manager = user.Manager as User; 
相关问题