Чтобы отправить это раньше других вывода, у вас есть несколько вариантов.
Один, создайте модуль HTTPHandler, добавьте его в web.config. Это рассматривает события конвейера ASP.NET до того, как страница получит контроль, поэтому, если вы можете определить в тот момент, что вы не хотите, чтобы страница запускалась, вы можете отправить 401 до того, как страница что-либо сделает. Обработчик наследует IHTTPHandler, поэтому начните поиск по этому описанию интерфейса для документации.
Во-вторых, вы можете подключиться к событиям страницы PreInit и Init и отправить 401 до начала загрузки страницы. Так как класс страницы создаются в это время, вы можете также установить флаг в объекте страницы, что другие методы могут проверить, если страница отвечает с 401.
Отлично! , , , , ! – NibblyPig
Это не сработает, если на выходе будут записаны другие материалы. По крайней мере, сделайте Response.Clear() заранее. Если вы хотите, чтобы стандартный HTTP-способ отказа в доступе, использование StatusCode - путь. –
Совершенно верно (response.clear) –