// EPiServer.PageBase
public virtual void AccessDenied()
{
PageBase.log.Warn("1.1.1 Access denied");
if (this._accessDenied == null)
{
this._accessDenied = AccessDeniedDelegateHandler.CreateAccessDeniedDelegate();
}
this._accessDenied(this);
}
Thanks Anders, I actually ran into an issue with that exact chunk of code doing WIF integration and it solved the problem there, but doesn't here.
In my current implementation I've overridden and added breakpoints to the base implementation calls of both the AccessDenied and the GetPage functions. GetPage throws an AccessDenied exception, however, AccessDenied is never called.
public override void AccessDenied()
{
base.AccessDenied();
}
public override PageData GetPage(PageReference pageLink)
{
return base.GetPage(pageLink);
}
I can hit the breakpoint on return base.GetPage but never on AccessDenied. If I catch the AccessDenied exception in GetPage I can redirect them to the AccessDenied page.
When users try to access expired pages, they do not get a blank page or nice friendly message that the page is no longer available. Instead, they are getting the pop up to log into the server which causes confusion.
I'm in the process of digging into this in more detail to see what events happen before the login window is brought up, but has anyone else ran into a similar situation?