如何在asp.net中创建子域?

时间:2009-06-24 15:18:23

标签: c# asp.net asp.net-3.5

如何在asp.net C#应用程序中创建子域?我正在使用asp.net门户。在该门户中,我需要能够在运行时创建子域。该子域的ftp也需要与主域ftp相同。

5 个答案:

答案 0 :(得分:5)

这里有一些工作部件。听起来要求就是这一切都发生在运行时。我相信很多网络托管服务提供商都深入研究这些问题并且可能有自定义解决方案。

DNS :您需要在DNS主机上打开API。如果是LAN环境,则必须检查DNS提供商是否已公开API。 (即Windows Server或您的网络操作系统)。如果这是一个需要通过互联网访问的面向公众的网站,您必须从DNS注册商处获取这些API。子域是永久性的吗?

IIS :您必须设置通配符映射(即* .mydomain.net)。当HTTP请求进入时,ASP.NET页面中的逻辑可以确定您正在使用的子域。您可以提取子域,在该子域上执行查找以获取更多信息(CustomerID,名称,有效的访问者IP地址范围,无论如何)。

FTP :如果您需要为该子域安全登录,则必须为这些用户创建AD或本地计算机帐户。如果你想要匿名访问,那也没问题。您还需要查看一些脚本选项,以便设置FTP文件夹。假设您正在使用IIS的FTP模块。如果您使用的是第三方FTP应用程序,则会进一步使情况复杂化。他们的API必须进行调查。

Active Directory :如果您要求对每个子域进行安全访问,则必须创建AD用户和/或组。您当然可以将用户的创建编写成组。也许用户将是您的Web服务器的本地用户。如果你想添加另一个网络服务器,这不能很好地扩展,但它确实可行。

答案 1 :(得分:0)

子域名由您的DNS设置控制。除此之外,我无法理解你的问题。

答案 2 :(得分:0)

我认为最好的方法是使用通配符DNS条目 - 即* .domain.com指向域。然后使用重写工具(如helicontech.com)重写子域的第一部分,告诉您的应用程序您正在查看的内容。

这会使用正则表达式将子域传递给您的应用:

RewriteCond Host:(mysub).domain.com RewriteRule(。*)/ $ 2?subdomain = $ 1 [I,L,U]

答案 3 :(得分:0)

这有两半: A)更改DNS设置: 这取决于您的主机和诸如此类的东西。联系他们,询问你是否无法弄明白。

B)更改主机设置: 这取决于您的服务器。我假设你正在使用某种版本的IIS。

在IIS6中,您可以右键单击一个网站,选择属性页面,转到网站选项卡,选择高级网站标识,然后开始添加绑定(通常您将使用默认或IP地址为IP地址,80表示TCP端口(除非是SSL),以及主机头文件的站点(例如www.example.com或subdomain.example.com)。

在IIS7中,右键单击网站并选择编辑绑定,然后单击“添加”。 IIS7的添加屏幕非常自我解释。

答案 4 :(得分:0)

我认为他想从代码中创建一个子域,使用可能需要由他的webhost人员提供的API。就像他自己的DNS管理器应用程序如果我把你的问题解释错了,那么我猜你可能要重申一点。