Click here to Skip to main content
15,037,928 members
Please Sign up or sign in to vote.
3.50/5 (4 votes)
See more:

I need an urgent idea/ how to create sub-domain for each user who is registering in my application..

For eg) I hosted my application in
If a user with name "bsoft" is registered in my app.
I need to create a site for the user as ""
In simple words how to rewrite the url for each user??

Please help..
Why? I guess, you have very few customers. But what if you need to scale it up?..
Joezer BH 31-Jan-13 2:49am
Say Sergey, if we manage to get the people to ask the question instead of stating the solution they want, would the world be a better place (at least for their customers)?
Maybe. At least, we would have a better looking, more useful CodeProject :-)

However, this question is actually not bad; in fact, this is still a real question, while too many inquirer's posts in this forum are not. And you may not see many of those non-questions, because I recently removed a lot of them... :-)

This is becoming a real disaster...

Thank you,
Srimathi89 31-Jan-13 3:25am
When will I get a solution???
bbirajdar 31-Jan-13 4:52am
I have seen somebody doing this is with C#. I dont have any code at the moment. Continue with your research and it can be done. Some references I can provide you

try with below code it may solve your problem

using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Web.Administration;
using Microsoft.Web.Administration;
using System.IO;

public partial class _Default : System.Web.UI.Page

    private const string SERVER_IP = "";// put your ip address
  private const int PORT = 80;
  private const string WEB_DOMAIN_PATH = @"F:\\web\domains\{0}\";

    //Live server
    //private const string SERVER_IP = "";

    protected void Page_Load(object sender, EventArgs e)
   if (!string.IsNullOrEmpty(Request.QueryString["user"]))

     string username = Request.QueryString["user"];
     string status = CreateUserSite(username, "");//change your Domain id

    catch(Exception ex)
    Response.Write("user parameter not supplied"); 


    private string CreateUserSite(string user, string domain)

   string path = string.Format(WEB_DOMAIN_PATH, domain);

        string userpath = path + user;

        string userUrl = user + "." + domain;

        using (ServerManager serverManager = new ServerManager())

            bool siteExists = false;
            int number = serverManager.Sites.Where(p => p.Name.ToLower().Equals(userUrl.ToLower())).Count();

            if (number == 0)
                siteExists = false;
                siteExists = true;

            if (!siteExists)

                //create user directory

                //copy every files from a-base to a new created folder
                FileInfo[] d = new DirectoryInfo(path + @"\a-base").GetFiles();
                foreach (FileInfo fi in d)
                    File.Copy(fi.FullName, userpath + @"\" + fi.Name, true);

                //create a directory
                Directory.CreateDirectory(userpath + @"\swfobject");

                FileInfo[] d1 = new DirectoryInfo(path + @"\a-base\swfobject").GetFiles();
                foreach (FileInfo fi in d1)
                    File.Copy(fi.FullName, userpath + @"\swfobject\" + fi.Name, true);

                //create site
                Site mySite = serverManager.Sites.Add(userUrl, path + user, PORT);
                mySite.ServerAutoStart = true;
                mySite.Applications[0].ApplicationPoolName = domain;

                //create bindings
                mySite.Bindings.Add(string.Format("{0}:{2}:{1}", SERVER_IP, userUrl, PORT ), "http");
                mySite.Bindings.Add(string.Format("{0}:{2}:www.{1}", SERVER_IP, userUrl, PORT), "http");

                Configuration config = serverManager.GetApplicationHostConfiguration();
                ConfigurationSection httpLoggingSection = config.GetSection("system.webServer/httpLogging", userUrl);
                httpLoggingSection["dontLog"] = true;


              //  ScriptManager.RegisterClientScriptBlock(this, this.GetType(), "success", "alert('" + userUrl + " created');", true);

                //ScriptManager.RegisterClientScriptBlock(this, this.GetType(), "error", "alert('user exists. Please use other name');", true);
       throw new Exception("user exists. Please use other name");

      return userUrl + " has been successfully created"; 
DrTJ2066 7-Aug-14 17:59pm
Nice approach, but how can I do it in a sharing environment without the access to the configuration file?!
I receive this error:
Filename applicationHost.config Error Cannot write configuration file due to insufficient permissions
heresanjay01 23-Nov-15 0:16am
give full permission to iis user
1-config folder
2-and 3 config file in config folder
Hi srimathi
According to me you have to contact with your Hosting Server Vendor may they will provide you API for this.
Srimathi89 31-Jan-13 4:09am
But I host it in my own server.. How could I do it????
Aarti Yadav 20-Mar-15 11:50am
is that code working properly ,
Aarti Yadav 13-Apr-15 4:40am
have u create url like subdomain for each login..
[no name] 31-Jan-13 4:43am
use the above code

This content, along with any associated source code and files, is licensed under The Code Project Open License (CPOL)

CodeProject, 20 Bay Street, 11th Floor Toronto, Ontario, Canada M5J 2N8 +1 (416) 849-8900