The power of Cache Dependencies in Sitefinity

Cache dependencies allow you to add dependencies to your cache expiration. For example, you could have a dependency on news. Then whenever news gets updated, your cache is automatically purged (and if you do it properly, it is purged on all environments if it is a load balanced setup). Why use them? They offer so … Continue reading “The power of Cache Dependencies in Sitefinity”

How and when to use Cache Substitution in Sitefinity

Sitefinity uses OutputCache to cache HTML page output. This greatly increases the performance of page rendering because it does not have to compile or generate the HTML. If you are unfamiliar with this process, please take a look at this informational post on page rendering in Sitefinity. What is it? Post Cache Substitution is a … Continue reading “How and when to use Cache Substitution in Sitefinity”

Help! My EventHub events are running multiple times

The EventHub is a great system for subscribing to events in Sitefinity. For instance, if you want to run some code whenever a user logs in, you can subscribe to the ILoginCompletedEvent for this. You can check out the full list of available events here. The issue Anyways, I often see users of the EventHub … Continue reading “Help! My EventHub events are running multiple times”

What does the rendering/cache lifecycle look like for Sitefinity pages?

I’ve given numerous talks on performance in Sitefinity. During these talks, I always have a lengthy segment on the page rendering lifecycle in Sitefinity and how to best optimize it. It is important to understand the functionality behind the scenes which ultimately delivers your page HTML. The two main steps I’m going to discuss are … Continue reading “What does the rendering/cache lifecycle look like for Sitefinity pages?”

Cache Sitefinity ISecuredObject models with permissions using SecuredProxy

Permissions for Sitefinity content types are stored in the database. 99% of projects are relying on the out-of-the-box functionality when it comes to permissions. So when each user requests a page, it will query the DB to filter the content items on the page by the user’s permissions. There’s nothing wrong with this, but some … Continue reading “Cache Sitefinity ISecuredObject models with permissions using SecuredProxy”

Login to Sitefinity with external ID (instead of email) using OpenIdConnect

As of Sitefinity 10, you can configure external identity providers. This allows you to login to Sitefinity with credentials from an external system. This is great, unless your external provider doesn’t use email as a static identifier for users. Sitefinity doesn’t allow the email field to be updated on demand, and it looks at the … Continue reading “Login to Sitefinity with external ID (instead of email) using OpenIdConnect”

ClaimsManager always returning anonymous identity from custom Web API in Sitefinity

The issue When utilizing the GetCurrentIdentity method of ClaimsManager to access the current user’s identity from within your custom Web API, the identity is always returning Anonymous – even for logged in users. This happens when you wire up a custom Web API route to /api/. For example: The cause The /api/ route is conflicting … Continue reading “ClaimsManager always returning anonymous identity from custom Web API in Sitefinity”