Вы можете изменить URL вашего файла считает страницей входа через web.config. (См. http://www.15seconds.com/issue/020220.htm.)
Подумайте о замене вашего пользовательского URL-адреса страницы с реальным URL-адресом в конфигурации.
Edit:
Подход web.config является жизнеспособным, если реализовать его как общее решение для всего виртуального каталога. (Попытка настроить пользовательские loginUrl для элемента <location>
в web.config приведет к ошибке конфигурации.)
Вы можете иметь более точный контроль над этим поведением, введя такой код на своей странице администратора (или в базовый класс для страниц администратора):
protected override void OnPreInit(EventArgs e)
{
base.OnPreInit(e);
if (!User.IsInRole("admin"))
{
Response.Redirect("~/ErrorPage.aspx?reason=denied");
}
}
Вы также можете заняться созданием HttpModule
или подключиться к вашему Global.asax, чтобы обрабатывать авторизацию в более общем смысле, не полагаясь на наследование страниц. См. http://msdn.microsoft.com/en-us/library/ms227673.aspx. Используйте событие BeginRequest
для проверки пути URL-адреса и, если он соответствует вашему шаблону, передайте ошибку или перенаправление, которое вы хотите доставить.