SharePoint-Beispiel-Add-In für das Lesen oder Aktualisieren von Benutzerprofileigenschaften
Das UserProfile.Manipulation.CSOM-Beispiel zeigt, wie Sie die Eigenschaften des Benutzerprofils für einen bestimmten Benutzer lesen und aktualisieren können. Dieses Beispiel verwendet ein vom Anbieter gehostetes Add-In für die folgenden Aufgaben:
- Lesen und Anzeigen aller Benutzerprofileigenschaften für einen Benutzer.
- Aktualisieren einer einwertigen Benutzerprofileigenschaft.
- Aktualisieren einer mehrwertigen Benutzerprofileigenschaft.
Verwenden Sie diese Lösung, wenn Sie die folgenden Aufgaben ausführen möchten:
- Lesen oder Schreiben von Daten in eine Benutzerprofileigenschaft für einen Benutzer.
- Verwenden von Benutzerprofil-Eigenschaftenwerten zum Personalisieren von SharePoint.
Hinweis
Dieses Codebeispiel kann nur in Office 365 ausgeführt werden.
Bevor Sie beginnen
Laden Sie zunächst das Beispiel-Add-In UserProfile.Manipulation.CSOM aus dem Projekt "Office 365-Entwicklermuster und -vorgehensweisen" auf GitHub herunter.
Hinweis
Der Code in diesem Artikel wird wie besehen und ohne jegliche Garantie zur Verfügung gestellt, gleich ob ausdrücklich oder konkludent, einschließlich jedweder stillschweigenden Gewährleistung der Eignung für einen bestimmten Zweck, Marktgängigkeit oder Nichtverletzung von Rechten.
Bevor Sie Szenario 1 ausführen
Wählen Sie Ihr Profilbild oben auf Ihrer Office 365-Website aus, und wählen Sie dann Über mich aus.
Wählen Sie auf der Seite Über mich die Option Profil bearbeiten aus.
Geben Sie I work at Contoso (Ich arbeite bei Contoso) unter Über mich ein.
Klicken Sie auf Alles speichern und schließen.
Bevor Sie Szenario 3 ausführen
- Wählen Sie Ihr Profilbild oben auf Ihrer Website aus, und wählen Sie dann Über mich aus.
- Wählen Sie auf der Seite Über mich die Option Profil bearbeiten aus.
- Wählen Sie unter Details bearbeiten die Option Details aus.
- Geben Sie C#, JavaScript unter Fähigkeiten ein.
- Klicken Sie auf Alles speichern und schließen.
Verwenden des UserProfile.Manipulation.CSOM-Beispiel-Add-Ins
Wenn Sie dieses Beispiel ausführen, wird ein vom Anbieter gehostetes Add-In gestartet, wie in der folgenden Abbildung gezeigt.
Dieses Codebeispiel enthält drei Szenarien.
Szenario | Gezeigte Vorgehensweise |
---|---|
1 | Lesen aller Benutzerprofileigenschaften für den Benutzer, der die App ausführt. |
2* | Aktualisieren einer einwertigen Benutzerprofileigenschaft. |
3* | Aktualisieren einer mehrwertigen Benutzerprofileigenschaft. |
Hinweis
Dieses Szenario wird nur in Microsoft 365 unterstützt.
Szenario 1: Lesen aller Benutzerprofileigenschaften
Wenn Sie Run scenario 1 (Szenario 1 ausführen) auswählen, liest das Add-In alle Benutzerprofileigenschaften für den aktuellen Benutzer und zeigt dann die Benutzerprofildaten in Current user profile properties (Aktuelle Benutzerprofileigenschaften) an, wie in der folgenden Abbildung gezeigt.
Wenn Sie Run scenario 1 (Szenario 1 ausführen) auswählen, wird die btnScenario1_Click-Methode in "CodeSample1.aspx.cs" aufgerufen, um die folgenden Aufgaben auszuführen:
- Verwenden von PeopleManager zum Abrufen aller Benutzerprofileigenschaften für den aktuellen Benutzer.
- Iterieren über PersonProperties.UserProfileProperties, um die Werte der Benutzerprofileigenschaften in einem Textfeld anzuzeigen.
protected void btnScenario1_Click(object sender, EventArgs e)
{
var spContext = SharePointContextProvider.Current.GetSharePointContext(Context);
using (var clientContext = spContext.CreateUserClientContextForSPHost())
{
// Get the people manager instance and load current properties.
PeopleManager peopleManager = new PeopleManager(clientContext);
PersonProperties personProperties = peopleManager.GetMyProperties();
clientContext.Load(personProperties);
clientContext.ExecuteQuery();
// Output user profile properties to a text box.
txtProperties.Text = "";
foreach (var item in personProperties.UserProfileProperties)
{
txtProperties.Text += string.Format("{0} - {1}{2}", item.Key, item.Value, Environment.NewLine);
}
}
}
Szenario 2: Aktualisieren einer einwertigen Benutzerprofileigenschaft
Szenario 2 zeigt, wie eine einwertige Benutzerprofileigenschaft aktualisiert wird. Wie in der folgenden Abbildung gezeigt wird, ist der aktuelle Wert der Benutzerprofileigenschaft About me (Über mich) für den Benutzer, der dieses Add-In ausführt, I work at Contoso (Ich arbeite bei Contoso).
Zum Aktualisieren des Werts der Benutzerprofileigenschaft Über mich geben Sie im Feld About me new value (Neuer Wert für "Über mich") die Angabe I am a software engineer at Contoso (Ich arbeite als Softwareentwickler bei Contoso) ein und wählen dann Run scenario 2 (Szenario 2 ausführen) aus. Der Code aktualisiert den Wert der Eigenschaft Über mich in I am a software engineer at Contoso.
Wie in der folgenden Abbildung gezeigt wird, aktualisiert das Add-In About me current value mit dem neuen Wert der Benutzerprofileigenschaft About me.
Wenn Sie Run scenario 2 (Szenario 2 ausführen) auswählen, wird die btnScenario2_Click-Methode in "CodeSample2.aspx.cs" aufgerufen, um die folgenden Aufgaben auszuführen:
- Verwenden von PeopleManager zum Abrufen der Benutzerprofileigenschaften des aktuellen Benutzers.
- Formatieren des Texts, der vom Benutzer eingegeben wird, im HTML-Format.
- Aktualisieren des Werts der Benutzerprofileigenschaft AboutMe mithilfe von SetSingleValueProfileProperty mit drei möglichen Parametern:
- Dem Kontonamen des Benutzers, dessen Benutzerprofil Sie aktualisieren möchten.
- Dem Namen der Benutzerprofileigenschaft (AboutMe in diesem Szenario).
- Dem Eigenschaftenwert im HTML-Format (I am a software engineer at Contoso in diesem Szenario).
protected void btnScenario2_Click(object sender, EventArgs e)
{
var spContext = SharePointContextProvider.Current.GetSharePointContext(Context);
using (var clientContext = spContext.CreateUserClientContextForSPHost())
{
// Get the people manager instance and initialize the account name.
PeopleManager peopleManager = new PeopleManager(clientContext);
PersonProperties personProperties = peopleManager.GetMyProperties();
clientContext.Load(personProperties, p => p.AccountName);
clientContext.ExecuteQuery();
// Convert entry to HTML.
string updatedValue = (txtAboutMe.Text).Replace(Environment.NewLine, "");
// Update the AboutMe property for the user using account name from the user profile.
peopleManager.SetSingleValueProfileProperty(personProperties.AccountName, "AboutMe", updatedValue);
clientContext.ExecuteQuery();
}
}
Hinweis
Wenn Sie benutzerdefinierte Benutzerprofileigenschaften verwenden, konfigurieren Sie die Eigenschaft so, dass sie vom Benutzer bearbeitet werden kann. Das in diesem Szenario verwendete Verfahren eignet sich für benutzerdefinierte Benutzerprofileigenschaften.
Szenario 3: Aktualisieren einer mehrwertigen Benutzerprofileigenschaft
Szenario 3 zeigt, wie eine mehrwertige Benutzerprofileigenschaft aktualisiert wird. Die folgende Abbildung zeigt die Startseite für Szenario 3. Skills current value (Aktueller Wert für Fähigkeiten) zeigt die Fähigkeiten des Benutzers an, der die App ausführt. Die Fähigkeiten werden aus der Benutzerprofileigenschaft SPS-Skills für den Benutzer gelesen.
So fügen Sie der Benutzerprofileigenschaft SPS-Skills über dieses Add-In neue Fähigkeiten hinzu:
- Geben Sie HTML5 ein, und wählen Sie dann Add Skill (Fähigkeit hinzufügen) aus.
- Geben Sie ASP.NET ein, und wählen Sie dann Skill hinzufügen aus.
- Wählen Sie Run scenario 3 (Szenario 3 ausführen) aus.
- Bestätigen Sie, dass Skills current value die neue Liste der Fähigkeiten für den Benutzer anzeigt.
- Bestätigen Sie, dass die Benutzerprofileigenschaft SPS-Skills für den Benutzer nun die neue Liste der Fähigkeiten anzeigt.
Wenn Sie Run scenario 3 (Szenario 3 ausführen) auswählen, wird die btnScenario3_Click-Methode in "CodeSample3.aspx.cs" aufgerufen, um die folgenden Aufgaben auszuführen:
- Verwenden von PeopleManager zum Abrufen der Benutzerprofileigenschaften des aktuellen Benutzers.
- Lesen der Liste der Fähigkeiten, die im Listenfeld angezeigt werden.
- Speichern der neuen Fähigkeiten in der Benutzerprofileigenschaft SPS-Skills mithilfe von SetMultiValuedProfileProperty mit drei möglichen Parametern:
- Dem Kontonamen des Benutzers, dessen Benutzerprofil aktualisiert wird.
- Dem Namen der Benutzerprofileigenschaft, der SPS-Skills lautet.
- Den Eigenschaftenwerten als eine Liste von Zeichenfolgenobjekten.
protected void btnScenario3_Click(object sender, EventArgs e)
{
var spContext = SharePointContextProvider.Current.GetSharePointContext(Context);
using (var clientContext = spContext.CreateUserClientContextForSPHost())
{
// Get the people manager instance and initialize the account name.
PeopleManager peopleManager = new PeopleManager(clientContext);
PersonProperties personProperties = peopleManager.GetMyProperties();
clientContext.Load(personProperties, p => p.AccountName);
clientContext.ExecuteQuery();
// Collect the user's skills from the list box in order to update the user's profile.
List<string> skills = new List<string>();
for (int i = 0; i < lstSkills.Items.Count; i++)
{
skills.Add(lstSkills.Items[i].Value);
}
// Update the SPS-Skills property for the user using account name from the user's profile.
peopleManager.SetMultiValuedProfileProperty(personProperties.AccountName, "SPS-Skills", skills);
clientContext.ExecuteQuery();
// Refresh the values.
RefreshUIValues();
}
}