Frage

Ich versuche programmgesteuert, aber ohne Erfolg einen neuen Benutzerprofilabschnitt zu erstellen. Das Problem ist mit dem Geben Sie Eigentum der Grundstücksklasse ein.

Wenn ich dafür einen Wert wie "Abschnitt" festlegt, erhalte ich die Ausnahme Der Datentyp ist für den Abschnitt nicht verfügbar. Wenn ich keinen Wert angibt, erhalte ich die Ausnahme UserProfilePropertySettings -Objekt muss einen Wert für "Typ" festlegen..

Hier ist der Code:

var userProfileConfigManager = new UserProfileConfigManager(ServerContext.GetContext(site));

var propertyCollection = userProfileConfigManager.GetPropertiesWithSection();

var newProperty = propertyCollection.Create(true);
newProperty.Name = "NewSection";
newProperty.DisplayName = "NewSection";
newProperty.Type = "section";  // or not set
newProperty.IsUserEditable = false;
newProperty.Length = 0;
newProperty.DefaultPrivacy = 0;
newProperty.PrivacyPolicy = 0;
newProperty.IsSearchable = false;
newProperty.IsVisibleOnEditor = false;
newProperty.IsVisibleOnViewer = false;
newProperty.Separator = MultiValueSeparator.Unknown;

newProperty.Commit();

Irgendwelche Ideen?

War es hilfreich?

Lösung

Mein Fehler - die zweite Ausnahme war meine eigene aufgrund von übereifrigen Eingabenprüfung! Der Code war jedoch auch falsch. Es sollte lesen:

var userProfileConfigManager = new UserProfileConfigManager(ServerContext.GetContext(site));

var propertyCollection = userProfileConfigManager.GetPropertiesWithSection();

var newProperty = propertyCollection.Create(true);
newProperty.Name = "NewSection";
newProperty.DisplayName = "NewSection";

newProperty.Commit();

Andere Tipps

Es ist auch eine gute Idee, die Reihenfolge des Abschnitts festzulegen:

// order being the absolute position you want to place section in property list 
propertyCollection.SetDisplayOrderBySectionName(newProperty.Name,order);
propertyCollection.CommitDisplayOrder();

Dies ist normalerweise der Grund, warum ich dies in erster Linie programmgesteuert mache, daher muss ich 1000-mal nicht nach oben in der Liste der Benutzerprofile-Eigenschaften-Mapping-Liste in SSP auf/nach unten klicken :-)-Anders Rask vor 0 Sekunden

HTH Anders Rask

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit sharepoint.stackexchange
scroll top