我有一个关于使用C#创建子域的问题。因此,这背后的想法是用户可以在我们的Web应用程序上创建子域,如下所示:
username.example.com
或
username2.example.com
我熟悉静态/动态路线。我猜这可以用其中一个或虚拟目录来完成?
如何在C#和.NET中执行此操作?
答案 0 :(得分:2)
首先,假设您有一个专用IP到您的站点,以避免在IIS上绑定
第二步,假设您使用BIND进行dns,因此您打开正确的txt文件并添加或删除带有时间戳更新的正确子域,并通过命令调用重新启动BIND服务asp.net ...(你需要知道一些基本的DNS,并允许访问池,以便能够在那里读/写)
然后你可以在第一次调用global.asax Application_BeginRequest
HttpContext.Current.Request.Path
它也包含子域名,并使用
进行翻译HttpContext.Current.RewritePath
类似
username.example.com -> example.com/users.aspx?userid=123456
这是一般的想法(这是在 global.asax )......
protected void Application_BeginRequest(Object sender, EventArgs e)
{
string sThePathToReWrite = sFindTheRealPath();
if (sThePathToReWrite != null){
HttpContext.Current.RewritePath(sThePathToReWrite, false);
}
}
string sFindTheRealPath()
{
string strCurrentPath = HttpContext.Current.Request.Path;
// analyze the strCurrentPath
// find for example the userid from the url
// and return the translate one - if not find anything return null
return "example.com/users.aspx?userid=" + userid
}