Вы должны внедрить модуль авторизации, который будет запускаться при каждом запросе к серверу. Таким образом, вы сможете авторизовать своего принципала для любого запроса, поступающего на сервер (запрос страницы, метод и т. Д.)
public class AuthorizationModule : IHttpModule, IRequiresSessionState
{
//not going to implement it fully, might not compile
public void Init( HttpApplication context )
{
//you'll prolly want to hook up to the acquire request state event, but read up to make sure this is the one you want on the msdn
context.AcquireRequestState += AuthorizeRequest;
}
public void AuthorizeRequest( HttpContextBase httpContext )
{
// do you work in here
// you can redirect them wherever if they don't have permssion, log them out, etc
}
}
}
После того, как вы создали модуль, вам нужно подключить его в web.config. Ваш тип должен включать пространство имен, если оно есть.
<httpModules>
<add name="AuthorizationModule" type="AuthorizationModule"/>
</httpModules>
Надеюсь, это поможет.