Impersonation Clashes with Cached Web Content Templates
Orsolya Hegedus
更新
Issue
Web Content Templates can be configured for caching to boost performance.
When not cached, the generated HTML is rendered for each request. When cached, the generated HTML is stored in the cache and reused for all subsequent requests until the cache entry is cleared or expires.
However, impersonation introduces a conflict. The rendered HTML differs for users who are impersonated because the URLs include the ?doAsUserId parameter.
In this scenario, it might happen that either the impersonating user or regular users might see incorrect links, specifically when the cache is refreshed by one user type while the other is viewing the page.
Environment
Quarterly Releases
Resolution
The observed behavior is expected due to the caching mechanism. The template, once rendered, is cached and served as-is for subsequent requests. Impersonation changes the URL, but the cached version doesn't reflect this change, leading to incorrect links.
To prevent this issue, disable template caching, especially when impersonation is active.