Serverside code in Sharepoint pagina’s toevoegen

Onlangs vond ik het nodig of handig om C# code toe te kunnen voegen aan m’n eigen pagina’s die in Sharepoint Designer waren aangemaakt. Dit heeft natuurlijk ook behoorlijk veel potentieel, aangezien je met C# enorm veel en krachtige dingen kunt doen. Omdat Sharepoint toch in het .Net Framework draait, moet dit ook mogelijk zijn vond ik. Na nog geen 30 seconden kwam ik er achter dat dit niet triviaal was. Nadat je een code blok hebt toegevoegd (en uiteraard server-side code in uitvoert) krijg je een mooie melding in het scherm dat dit niet is toegestaan, iets in de trend als dit:

An error occurred during the processing of /Pages/test.aspx. Code blocks are not allowed in this file.

Ok, het plaatsen van code blokken is dus afgeschermd. Hier kan ik me wel iets bij voorstellen, aangezien het een enorm krachtige feature kan zijn die ook misbruikt kan worden.

Toch moet zoiets mogelijk zijn vond ik. Nu had ik in de tussentijd al een work-around bedacht om toch geen code blokken te hoeven gebruiken, maar toch bleef dit in m’n achterhoofd rond dwalen. In m’n pauze heb ik even gezocht hoe je toch code toe kunt voegen in je eigen aspx-pagina’s die je hebt gemaakt in Sharepoint Designer. M’n vermoeden was juist, server-side code is standaard uitgeschakeld in Sharepoint pagina’s.

Om dit toch uit te kunnen voeren moet je de web.config aanpassen. Wanneer je dit toevoegd in de web.config zou je server-side code uit moeten kunnen voeren in de custompagina.aspx.

Ook kun je hier wildcards als een *-teken in gaan gebruiken, dus zul je waarschijnlijk ook iets als /*/*.aspx kunnen toevoegen om alle aspx-pagina’s deze functionaliteit te geven. Let wel op wat je hier doet, aangezien het natuurlijk niet de bedoeling is om iedere pagina deze rechten te geven.

Het is natuurlijk om een reden uitgeschakeld. Zelf heb ik het nog niet geprobeerd, aangezien ik de web.config op dat moment niet aan kon passen en in de tussentijd al een andere work-around voor m’n pagina had bedacht. Voor een volgende keer ga ik dit zeker eens proberen.


Share