c# HttpModule 处理伪子域

发布于 2024-07-13 02:30:13 字数 441 浏览 11 评论 0原文

我是 .NET 开发新手,目前正在从事个人项目。 我的项目将允许用户创建自己的简单移动网站。

我想编写一个处理伪子域的 HTTP 模块。

我已经设置了 DNS 通配符,so sub.domain.comxxx.domain.com 等指向同一个应用程序。 我希望能够从 sub.domain.com/pageID.html URL 中提取子部分和 ID 部分,并从数据库服务器加载页面的设置,以便构建页面并将其呈现给客户端。

我可以使用像 isapirewrite 这样的 URL 重写工具来完成此操作,但我希望我的应用程序独立于操作系统,以便服务器不需要安装任何第三方应用程序。

是否可以使用 HTTP 处理程序来完成此操作?

谁能发布一个例子吗?

I'm new to development with .NET and working on a personal project. My project will allow users to create their own simple mobile site.

I would like to write a HTTP Module that will handle pseudo sub-domains.

I have already setup my DNS wildcard, so sub.domain.com and xxx.domain.com etc. point to the same application. I want to be able to extract sub and ID parts from sub.domain.com/pageID.html URL and load settings of the page from a database server in order to build and render the page to the client.

I can do it with URL rewrite tools like isapirewrite, but I want my application to be independent from OS so that the server doesn't require installation of any 3rd party app.

Is it possible to do it with HTTP handlers?

Can anyone post an example?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

掩于岁月 2024-07-20 02:30:13

您可以随时检查域名。 在哪里执行此操作取决于您的应用程序的目标。 例如,如果您想根据域提供不同的页面,您可以这样做:

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");
        }
    }
}

You can check the domain at any time. Where to do it dependings on your application's goals. E.g. if you want to serve different pages depending on the domain you could do like this:

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");
        }
    }
}
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文