Click here to Skip to main content
Rate this: bad
good
Please Sign up or sign in to vote.
See more: C# ASP.NET
Hi,
 
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 www.xyz.com
If a user with name "bsoft" is registered in my app.
I need to create a site for the user as "bsoft.xyz.com"
In simple words how to rewrite the url for each user??
 
Please help..
Posted 30-Jan-13 20:38pm
Comments
Sergey Alexandrovich Kryukov at 31-Jan-13 2:41am
   
Why? I guess, you have very few customers. But what if you need to scale it up?..
—SA
Edo Tzumer at 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)?
Sergey Alexandrovich Kryukov at 31-Jan-13 2:59am
   
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,
—SA
srimathi89 at 31-Jan-13 3:25am
   
When will I get a solution???
aspnet_regiis -i at 31-Jan-13 4:52am
   
I have seen somebody doing this is asp.net 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
 
http://stackoverflow.com/questions/6638923/how-to-create-this-type-of-subdomain-on-the-fly-like-blogger-com
Rate this: bad
good
Please Sign up or sign in to vote.

Solution 2

Hi
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 = "192.168.111.112";// 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 = "192.168.111.111";

    protected void Page_Load(object sender, EventArgs e)
    {
   if (!string.IsNullOrEmpty(Request.QueryString["user"]))
   {
 
    try
    {
     string username = Request.QueryString["user"];
     string status = CreateUserSite(username, "codeproject.com");//change your Domain id

     Response.Write(status);
    }
    catch(Exception ex)
    {
     Response.Write(ex.Message); 
    }
   }
   else
   {
    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;
            }
            else
            {
                siteExists = true;
            }
 
            if (!siteExists)
            {
 
                //create user directory
                Directory.CreateDirectory(userpath);
 
                //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.Clear();
                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;
 
                serverManager.CommitChanges();
 
              //  ScriptManager.RegisterClientScriptBlock(this, this.GetType(), "success", "alert('" + userUrl + " created');", true);

            }
            else
            {
                //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"; 
        }
    }
}
  Permalink  
Rate this: bad
good
Please Sign up or sign in to vote.

Solution 1

Hi srimathi
According to me you have to contact with your Hosting Server Vendor may they will provide you API for this.
  Permalink  
Comments
srimathi89 at 31-Jan-13 4:09am
   
Hi,
But I host it in my own server.. How could I do it????
vivek511 at 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)



Advertise | Privacy | Mobile
Web01 | 2.8.140709.1 | Last Updated 31 Jan 2013
Copyright © CodeProject, 1999-2014
All Rights Reserved. Terms of Service
Layout: fixed | fluid