---
title: Eigene Tokens in der PnP Provisionierung
description: Wir zeigen Ihnen wie Sie eigene Tokens in der PnP Provisionierung implementieren. Erklärt wird dieses anhand einer Antrags-ID in einer Provisionierung von Websites.
image: https://blog.hansevision.com/hubfs/pexels-antonio-batini%C4%87-4164418.jpg
---

[![HV_BechtleGroup_sRGB_Black_2025 (3)](https://blog.hansevision.com/hs-fs/hubfs/Website%20Weebly%20Bildmaterialien/Logos/HV_BechtleGroup_sRGB_Black_2025%20(3).png?width=225&height=45&name=HV_BechtleGroup_sRGB_Black_2025%20(3).png)](https://www.hansevision.com/) [Blog](https://blog.hansevision.com)

 Lösungen

 Leistungen

[Über uns](https://www.hansevision.com/hansevision.html)

 Karriere

[Kontakt](https://www.hansevision.com/kontakt.html)

[![HV_BechtleGroup_sRGB_Black_2025 (3)](https://blog.hansevision.com/hs-fs/hubfs/Website%20Weebly%20Bildmaterialien/Logos/HV_BechtleGroup_sRGB_Black_2025%20(3).png?width=163&height=32&name=HV_BechtleGroup_sRGB_Black_2025%20(3).png)](https://www.hansevision.com/) [Blog](https://blog.hansevision.com)

 Lösungen

 Leistungen

[Über uns](https://www.hansevision.com/hansevision.html)

 Karriere

Zurück

 1 Minuten Lesezeit  12.06.2019

[SharePoint](https://blog.hansevision.com/tag/sharepoint) [Tutorial](https://blog.hansevision.com/tag/tutorial) [Coding](https://blog.hansevision.com/tag/coding)

<https://twitter.com/intent/tweet?original_referer=https://blog.hansevision.com/eigene-tokens-in-der-pnp-provisionierung?utm_medium=social&utm_source=twitter&url=https://blog.hansevision.com/eigene-tokens-in-der-pnp-provisionierung?utm_medium=social&utm_source=twitter&source=tweetbutton&text=> <http://www.linkedin.com/shareArticle?mini=true&url=https://blog.hansevision.com/eigene-tokens-in-der-pnp-provisionierung?utm_medium=social&utm_source=linkedin>

![Bild von Philip Szalla (ehemaliger Mitarbeiter)](https://blog.hansevision.com/hs-fs/hubfs/CTA%20Grafiken/profile.png?width=140&height=140&name=profile.png)

[Philip Szalla (ehemaliger Mitarbeiter)](https://blog.hansevision.com/author/philip-szalla)

# Eigene Tokens in der PnP Provisionierung

---

Vor kurzem musste ich in einem Template für das PnP Provisionierungs Framework (https://github.com/SharePoint/PnP-Sites-Core) eigene Tokens implementieren. Diese sollten zur Laufzeit für unterschiedliche Websites unterschiedliche Werte in das Template einfügen.

Ein Beispiel für solch ein Custom Token könnte die Antrags-ID in einer Provisionierung von Websites sein, wo die Antrags-ID in das Propertybag der Website hinzugefügt und indiziert werden soll.

Also habe ich mich im Source Code des Frameworks auf die Suche gemacht nach der Möglichkeit, die Provisionierung zu erweitern… und ich bin fündig geworden. In den Unit-Tests des Repositories ist enthalten, wie man einen eigenen Token Provider implementiert.

Dies habe ich in einem kleinen Beispiel nachgestellt.

Das Ziel ist, dass im Template der Token `{customToken}` verwendet werden kann und ersetzt wird.

Um die entsprechenden Klassen in meiner .NET 4.7.2 Konsolenanwendung verwenden zu können, muss ich zuerst einige NuGet-Pakete installieren.

Zuerst installiere ich das Paket Microsoft.SharePoint2016.CSOM. Dieses ermöglicht den Zugriff auf das Client Side Object Model aus C# heraus.  
`Install-Package Microsoft.SharePoint2016.CSOM`

Danach installiere ich das Paket SharePointPnPCore2016. In diesem Paket ist die OfficeDevPnP.Core.dll aus dem Github-Repository https://github.com/SharePoint/PnP-Sites-Core enthalten.  
`Install-Package SharePointPnPCore2016`

[![](https://blog.hansevision.com/hs-fs/hubfs/Imported_Blog_Media/01_Template_Code.png?width=960&height=568&name=01_Template_Code.png)](https://static.hsstatic.net/BlogImporterAssetsUI/ex/missing-image.png)

In diesem XML Template ist definiert, dass eine neue Liste erstellt werden soll. Hierbei soll der Titel der Liste den Wert des Tokens `{customToken}` entsprechen.

Um dies zu realisieren implementiere ich zuerst einen `IProvisioningExtensibilityTokenProvider`, um meine `TokenDefinition` beim Anwenden des Templates zu registrieren.

[![](https://blog.hansevision.com/hs-fs/hubfs/Imported_Blog_Media/02_TokenProvider_Code.png?width=947&height=405&name=02_TokenProvider_Code.png)](https://static.hsstatic.net/BlogImporterAssetsUI/ex/missing-image.png)

Im selben Zuge implementiere ich auch gleich die `TokenDefinition`. Dabei soll der Wert des Tokens nicht statisch sein, sondern über den Parameter `string configurationData` aus dem CustomTokenProvider definiert werden.

Den `CustomTokenProvider` kann ich nun beim Anwenden des Templates auf der Website referenzieren und einen Wert für meinen Token über den Member `Configuration` definieren.

[![](https://blog.hansevision.com/hs-fs/hubfs/Imported_Blog_Media/03_ApplyTemplate_Code.png?width=654&height=524&name=03_ApplyTemplate_Code.png)](https://static.hsstatic.net/BlogImporterAssetsUI/ex/missing-image.png)

An der Stelle kann ein beliebiger String hinterlegt werden und somit zum Beispiel die Antrags-ID im Template verwendet werden.

Wie erwartet, wird der Wert **Custom Token Value** als Titel für die angelegte Liste verwendet.

[![](https://blog.hansevision.com/hs-fs/hubfs/Imported_Blog_Media/04_SiteContents.png?width=1200&height=650&name=04_SiteContents.png)](https://static.hsstatic.net/BlogImporterAssetsUI/ex/missing-image.png)

![Bild von Philip Szalla (ehemaliger Mitarbeiter)](https://blog.hansevision.com/hs-fs/hubfs/CTA%20Grafiken/profile.png?width=140&height=140&name=profile.png)

[Philip Szalla (ehemaliger Mitarbeiter)](https://blog.hansevision.com/author/philip-szalla)  Philip Szalla ist seit 2015 als Softwareentwickler bei HanseVision tätig und dabei zuständig für die Entwicklung von individuellen Lösungen. In diesem Umfeld analysiert er Anforderungen, entwirft IT-Architekturen und implementiert Komponenten zusammen mit seinen Kolleg:innen und den Kunden. [Alle Artikel des Autors](https://blog.hansevision.com/author/philip-szalla)

### Ähnliche Blog-Artikel

![](https://blog.hansevision.com/hs-fs/hubfs/Theme%20Development/hansevision-newsletter.png?width=410&name=hansevision-newsletter.png)

### Mit unserem HanseVision Update sind Sie immer gut informiert über alle Themen rund um moderne Zusammenarbeit, Lösungen und Tools, Referenzen und Aktionen.

[![Jetzt zum Newsletter anmelden](https://hubspot-no-cache-eu1-prod.s3.amazonaws.com/cta/default/24882854/c769ef8c-5eed-48ae-ada2-7fc72d656a50.png)](https://hubspot-cta-redirect-eu1-prod.s3.amazonaws.com/cta/redirect/24882854/c769ef8c-5eed-48ae-ada2-7fc72d656a50)

Updates & Aktionen

Versand alle 4-6 Wochen

Trends & aktuelle Entwicklungen

![](https://blog.hansevision.com/hs-fs/hubfs/Theme%20Development/hansevision-newsletter.png?width=250&height=250&name=hansevision-newsletter.png)

[![Jetzt zum Newsletter anmelden](https://hubspot-no-cache-eu1-prod.s3.amazonaws.com/cta/default/24882854/c769ef8c-5eed-48ae-ada2-7fc72d656a50.png)](https://hubspot-cta-redirect-eu1-prod.s3.amazonaws.com/cta/redirect/24882854/c769ef8c-5eed-48ae-ada2-7fc72d656a50)

<https://www.youtube.com/channel/UCZQCgsNj4irQw3Ozhqf3YaA?sub_confirmation=1> <https://www.linkedin.com/company/5723266>

[Datenschutzerklärung](https://www.hansevision.com/datenschutzerklaerung.html)

[Impressum](https://www.hansevision.com/impressum-688471.html)

[AGB](https://www.hansevision.com/uploads/4/1/9/3/41931735/hansevision_agb_der_hansevision_gmbh_stand_31.03.2020.pdf)

[Telefon: +49 (40) 2880 7590 - 0](tel:+4940288075900)

 Adresse: Atlantic Haus, Bernhard-Nocht-Strasse 113, 20359 Hamburg

[Cookie-Richtlinien](https://www.hansevision.com/cookie-richtlinie.html)

 Cookie-Einstellungen

```json
{
  "@context" : "https://schema.org",
  "@type" : "BlogPosting",
  "author" : {
    "@type" : "Person",
    "name" : "Philip Szalla (ehemaliger Mitarbeiter)",
    "url" : "https://blog.hansevision.com/author/philip-szalla"
  },
  "dateModified" : "2023-04-21T07:20:04.020Z",
  "datePublished" : "2019-06-12T22:00:00.000Z",
  "headline" : "Eigene Tokens in der PnP Provisionierung",
  "image" : [ "https://blog.hansevision.com/hubfs/pexels-antonio-batini%C4%87-4164418.jpg" ],
  "mainEntityOfPage" : {
    "@id" : "https://blog.hansevision.com/eigene-tokens-in-der-pnp-provisionierung",
    "@type" : "WebPage"
  },
  "publisher" : {
    "@type" : "Organization",
    "logo" : {
      "@type" : "ImageObject",
      "url" : "https://blog.hansevision.com/hubfs/HanseVision_sRGB_Black.png"
    },
    "name" : "HanseVision GmbH"
  }
}
```