Программно спросить страницу, в глобальном asax, если она помечена как устаревшая? - PullRequest
1 голос
/ 13 октября 2009

Я хотел бы пометить некоторые страницы на моем сайте, которые в настоящее время находятся в свободном доступе, как "устаревшие", добавить их в мой global.asax и перенаправить клиента на другую страницу.

Тогда я сделаю так, чтобы сайт уведомил команду разработчиков о том, что кто-то пытался перейти на эту страницу.

Можете ли вы получить доступ к информации о типе страницы из любого места в мире?

Ответы [ 2 ]

2 голосов
/ 13 октября 2009

При условии, что у вас есть следующая страница:

[Obsolete]
public partial class _Default : System.Web.UI.Page
{
    protected void Page_Load(object sender, EventArgs e)
    { }
}

В global.asax вы можете сделать это:

protected void Application_PreRequestHandlerExecute(object sender, EventArgs e)
{
    if (!(this.Context.Handler is System.Web.UI.Page))
    {
        return;
    }

    var isPageObsolete = this.Context.Handler
            .GetType()
            .BaseType
            .GetCustomAttributes(typeof(ObsoleteAttribute), true)
            .Length > 0;
    if (isPageObsolete)
    {
        Response.Redirect("http://www.google.com");
    }
}
0 голосов
/ 13 октября 2009

Я думаю, что ответ Дарина весьма креативный. Я предлагаю другую точку зрения. Метод, обсужденный до сих пор, маркирует страницу на странице. Как насчет пометки страницы, скажем, в конфиге или другом XML-файле, подобном этому.

<obsoletePages>
  <page path="/page123.aspx />
  <page path="/pagexyz.aspx />
</obsoletePages>

В global.asax перехватите запрос на Application_BeginRequest () , если страница запроса найдена в файле конфигурации, выполните перенаправление.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...