c # HttpModule для обработки псевдодоменов - PullRequest
1 голос
/ 15 января 2009

Я новичок в разработке с .NET и работаю над личным проектом. Мой проект позволит пользователям создавать свой собственный простой мобильный сайт.

Я хотел бы написать модуль HTTP, который будет обрабатывать псевдодомен.

Я уже настроил подстановочный знак DNS, so sub.domain.com, xxx.domain.com и т. Д. Указывают на то же приложение. Я хочу иметь возможность извлекать части sub и ID из URL-адреса sub.domain.com/pageID.html и загружать настройки страницы с сервера базы данных, чтобы построить и отобразить страницу для клиента.

Я могу сделать это с помощью инструментов перезаписи URL, таких как isapirewrite, но я хочу, чтобы мое приложение было независимым от ОС, чтобы сервер не требовал установки каких-либо сторонних приложений.

Возможно ли это сделать с помощью обработчиков HTTP?

Может кто-нибудь выложить пример?

1 Ответ

5 голосов
/ 15 января 2009

Вы можете проверить домен в любое время. Где это сделать, зависит от целей вашего приложения. Например. если вы хотите обслуживать разные страницы в зависимости от домена, вы можете сделать это так:

public class MyModule : IHttpModule
{
    public void Dispose()
    {
    }

    public void Init(HttpApplication context)
    {
        context.BeginRequest += context_BeginRequest;
    }

    void context_BeginRequest(object sender, EventArgs e)
    {
        HttpApplication app = sender as HttpApplication;
        string host = app.Request.Url.Host;
        if(host == "first.domain.com")
        {
            app.Context.RewritePath("~/First.aspx");
        }
    }
}
...