0

我的web應用程序是使用HTML5和Jquery的ASP.NET MVC 4 Web應用程序。檢索和編輯Sharepoint Active Directory用戶配置文件屬性

我正在編寫Web應用程序以使用Active Directory從Sharepoint服務器檢索和編輯數據。

我可以檢索信息,但我試圖找出一種方法來編輯和提交更改到活動目錄帳戶。我一直無法找到與遠程Web應用程序訪問有關的代碼示例。我所見過的唯一編輯樣本只能在SharePoint服務器上完成。

我想知道我們是否完全忽略了有關Active Directory的事情,如果我試圖做甚至可能。

注:

我一直沒能找到的代碼編輯Active Directory的信息呢。這是我目前檢索的代碼。我希望能夠撤消信息,編輯名字或姓氏等屬性,然後將更改提交到SharePoint Active Directory。

在此先感謝您的答案!

ClientContext currentContext = new ClientContext(serverAddress); 
     currentContext.Credentials = new System.Net.NetworkCredential(adminAccount, password); 

     const string targetUser = "domain\\targetAccountName"; 

     Microsoft.SharePoint.Client.UserProfiles.PeopleManager peopleManager = new Microsoft.SharePoint.Client.UserProfiles.PeopleManager(currentContext); 
     Microsoft.SharePoint.Client.UserProfiles.PersonProperties personProperties = peopleManager.GetPropertiesFor(targetUser); 

     currentContext.Load(personProperties, p => p.AccountName, p => p.UserProfileProperties); 
     currentContext.ExecuteQuery(); 

     foreach (var property in personProperties.UserProfileProperties) 
     { 
      //Pull User Account Name 
      //Edit Account name to new value 
      //Commit changes 
     }    

回答

0

看起來像PersonProperties類只提供只讀訪問,因爲所有屬性只顯示Get。 MSDN PersonProperties

如果你想留在SharePoint,看起來你需要檢查UserProfile class。該頁面有一個體面的例子,可以檢索一個帳戶,然後設置一些屬性。

如果您不需要SharePoint特定的屬性並希望使用易於使用的格式,則可以檢索UserPrincipal。它會讓您輕鬆訪問常見的用戶屬性。

using (var context = new PrincipalContext(ContextType.Domain, "domainServer", 
          "DC=domain,DC=local", adminAccount, password)) 
{ 
    var userPrincipal = UserPrincipal.FindByIdentity(context, 
          IdentityType.SamAccountName, "targetAccountName"); 
    if (userPrincipal != null) 
    { 
     userPrincipal.GivenName = "NewFirstName"; 
     // etc, etc. 
    } 
} 
+0

謝謝!這正是我所期待的。看起來好像有很多不同的方式來獲取這些SharePoint特定的屬性。 –

相關問題