Ладно, так я и сделал.Я написал этот класс, который наследуется от System.Web.UI.Page
.Я переопределяю событие OnInit
, и именно здесь происходит аутентификация (поиск имени пользователя Windows по базе данных пользователей).Если пользователь не проходит аутентификацию, для isTerminating
устанавливается значение true, а событие OnLoad
запускается только в том случае, если isTerminating
равно false
.Я попытался оставить Response.Redirect со вторым параметром, установленным в false, сам по себе, но он по-прежнему выполнял все последующие события страницы.(даже при вызове HttpApplication.CompleteRequest()
)
public class BasePageClass : Page
{
private bool isTerminating = false;
protected override void OnInit(EventArgs e)
{
isTerminating = !AuthenticationManager.Authenticate();
base.OnInit(e);
}
protected override void OnLoad(EventArgs e)
{
if (!isTerminating)
{
base.OnLoad(e);
}
}
}
Я понятия не имею, лучше ли выполнять запуск события OnLoad, но, похоже, он работает нормально.