By using this site, you agree to our updated Privacy Policy and our Terms of Use. Manage your Cookies Settings.
424,678 Members | 2,377 Online
Bytes IT Community
+ Ask a Question
Need help? Post your question and get tips & solutions from a community of 424,678 IT Pros & Developers. It's quick & easy.

simulate virtual directory for each user

P: n/a
Dear Friends

Would you please give me your professional idea about this asp.net problem.

I need different virtual directory for different customer with their names
like these:
www.oursite.com/Jack
www.oursite.com/Sue
www.oursite.com/Tom

I have a asp.net project. It is a website and the content of it WebPages
comes from database.
To give each user a virtual directory, I have 2 options:
1. create a virtual directory for each user and copy the asp.net project to
each directory
This is not a good solution.
2. Copy all the files to root directory (www.oursite.com) and when users
type
www.ourwebsite.com/jack or www.ourwebsite.com/sue, I can figure out the name
(jack or sue) and get the id of the user from database and bring the content
of that user's web pages from database.

I put the following code into Application_BeginRequest event in Global.asax
file:

dim sFolderName As String = Request.ApplicationPath.ToString.Trim("/")
dim AgentID as long = GetAgentIdByFolderName(sFolderName) 'from the
database
WriteAgentIdToCookie(AgentID)
Server.Transfer("AgentHomePage.aspx")

After writing the agent Id to client's cookie, I redirect to agent home page
and at this page, I read cookie and get agent id and bring the agent info
like its picture URL and home page info from database.

The problem is: When I type : www.oursite.com/Jack
I faced this error: page can not be found!

Do you think global.asax is a good place to put this code? and also this
code: Request.ApplicationPath ? HttpRequest or something?
Is there a better way to get what user typed I mean the folder name that
comes after my website.

I got web hosting service from another company so I do not have any control
over that company's IIS. I could not found a way in its web hosting's admin
site to set the default page. Any page with default or index name will come
when I type www.oursite.com without including file name.

Please help. Thank you very much in advance

Best Regards
Andy Eshtry


Nov 18 '05 #1
Share this Question
Share on Google+
3 Replies


P: n/a
Could you be more specific as to why each user needs their own directory?
What would "Jack" get that requires him to have a different directory than
"Sue" or "Tom"?

I ask because ASP.NET can build content on the fly. Content can be cached
based on an url parameter (i.e. the user) so that different users get
different output. And, there are many more options to ensure that different
users to a site get different results.
"Amir Eshterayeh" <ae*********@hotmail.com> wrote in message
news:%2****************@TK2MSFTNGP11.phx.gbl...
Dear Friends

Would you please give me your professional idea about this asp.net problem.
I need different virtual directory for different customer with their names
like these:
www.oursite.com/Jack
www.oursite.com/Sue
www.oursite.com/Tom

I have a asp.net project. It is a website and the content of it WebPages
comes from database.
To give each user a virtual directory, I have 2 options:
1. create a virtual directory for each user and copy the asp.net project to each directory
This is not a good solution.
2. Copy all the files to root directory (www.oursite.com) and when users
type
www.ourwebsite.com/jack or www.ourwebsite.com/sue, I can figure out the name (jack or sue) and get the id of the user from database and bring the content of that user's web pages from database.

I put the following code into Application_BeginRequest event in Global.asax file:

dim sFolderName As String = Request.ApplicationPath.ToString.Trim("/")
dim AgentID as long = GetAgentIdByFolderName(sFolderName) 'from the
database
WriteAgentIdToCookie(AgentID)
Server.Transfer("AgentHomePage.aspx")

After writing the agent Id to client's cookie, I redirect to agent home page and at this page, I read cookie and get agent id and bring the agent info
like its picture URL and home page info from database.

The problem is: When I type : www.oursite.com/Jack
I faced this error: page can not be found!

Do you think global.asax is a good place to put this code? and also this
code: Request.ApplicationPath ? HttpRequest or something?
Is there a better way to get what user typed I mean the folder name that
comes after my website.

I got web hosting service from another company so I do not have any control over that company's IIS. I could not found a way in its web hosting's admin site to set the default page. Any page with default or index name will come when I type www.oursite.com without including file name.

Please help. Thank you very much in advance

Best Regards
Andy Eshtry

Nov 18 '05 #2

P: n/a
Dear Mr. Scott and other friends
The point is my company sell the virtual directorys and give users
specific URL I mean www.mycom.com/sue or www.mycom.com/sandy
so that she can print the website with her name on her business card.
What are the ways I can show each user, typing the url I mention, his/her
specific content?
Thanks for your kind attention
Andy Eshtry

"Scott M." <s-***@BADSPAMsnet.net> wrote in message
news:%2****************@TK2MSFTNGP11.phx.gbl...
Could you be more specific as to why each user needs their own directory?
What would "Jack" get that requires him to have a different directory than
"Sue" or "Tom"?

I ask because ASP.NET can build content on the fly. Content can be cached
based on an url parameter (i.e. the user) so that different users get
different output. And, there are many more options to ensure that different users to a site get different results.
"Amir Eshterayeh" <ae*********@hotmail.com> wrote in message
news:%2****************@TK2MSFTNGP11.phx.gbl...
Dear Friends

Would you please give me your professional idea about this asp.net

problem.

I need different virtual directory for different customer with their names like these:
www.oursite.com/Jack
www.oursite.com/Sue
www.oursite.com/Tom

I have a asp.net project. It is a website and the content of it WebPages
comes from database.
To give each user a virtual directory, I have 2 options:
1. create a virtual directory for each user and copy the asp.net project

to
each directory
This is not a good solution.
2. Copy all the files to root directory (www.oursite.com) and when users
type
www.ourwebsite.com/jack or www.ourwebsite.com/sue, I can figure out the

name
(jack or sue) and get the id of the user from database and bring the

content
of that user's web pages from database.

I put the following code into Application_BeginRequest event in

Global.asax
file:

dim sFolderName As String = Request.ApplicationPath.ToString.Trim("/")
dim AgentID as long = GetAgentIdByFolderName(sFolderName) 'from the
database
WriteAgentIdToCookie(AgentID)
Server.Transfer("AgentHomePage.aspx")

After writing the agent Id to client's cookie, I redirect to agent home

page
and at this page, I read cookie and get agent id and bring the agent info like its picture URL and home page info from database.

The problem is: When I type : www.oursite.com/Jack
I faced this error: page can not be found!

Do you think global.asax is a good place to put this code? and also this
code: Request.ApplicationPath ? HttpRequest or something?
Is there a better way to get what user typed I mean the folder name that
comes after my website.

I got web hosting service from another company so I do not have any

control
over that company's IIS. I could not found a way in its web hosting's

admin
site to set the default page. Any page with default or index name will

come
when I type www.oursite.com without including file name.

Please help. Thank you very much in advance

Best Regards
Andy Eshtry


Nov 18 '05 #3

P: n/a
One way to achieve this functionality is to do URL rewriting.

In ASP.NET you write a class to implement the IHttpModule interface.
Attach an event handler to the HttpApplication object's BeginRequest
event. Inside the event handler you can determine who the user is, set
variables in the Context object to remember them (you can pull them
out during page processing), then do a Content.RewritePath to assign
an internal path to the resource. So the user may see
www.mycom.com/sue/default.aspx but this page doesn't actually exist.
You may internally be sending the runtime to process the request from
x:\wwwroot\userdefault.aspx.

You configure the new module into your application through an entry in
the <httpModules> section of web.config.

This technique is popular in a number of open source projects you can
look at (the Community Starter Kit at http://asp.net and .Text blog
engine). I'm sure with some searching you can find other references.

--
Scott
http://www.OdeToCode.com

On Tue, 3 Feb 2004 11:26:52 -0800, "Amir Eshterayeh"
<ae*********@hotmail.com> wrote:
Dear Mr. Scott and other friends
The point is my company sell the virtual directorys and give users
specific URL I mean www.mycom.com/sue or www.mycom.com/sandy
so that she can print the website with her name on her business card.
What are the ways I can show each user, typing the url I mention, his/her
specific content?
Thanks for your kind attention
Andy Eshtry

"Scott M." <s-***@BADSPAMsnet.net> wrote in message
news:%2****************@TK2MSFTNGP11.phx.gbl...
Could you be more specific as to why each user needs their own directory?
What would "Jack" get that requires him to have a different directory than
"Sue" or "Tom"?

I ask because ASP.NET can build content on the fly. Content can be cached
based on an url parameter (i.e. the user) so that different users get
different output. And, there are many more options to ensure that

different
users to a site get different results.
"Amir Eshterayeh" <ae*********@hotmail.com> wrote in message
news:%2****************@TK2MSFTNGP11.phx.gbl...
> Dear Friends
>
> Would you please give me your professional idea about this asp.net

problem.
>
> I need different virtual directory for different customer with theirnames > like these:
> www.oursite.com/Jack
> www.oursite.com/Sue
> www.oursite.com/Tom
>
> I have a asp.net project. It is a website and the content of it WebPages
> comes from database.
> To give each user a virtual directory, I have 2 options:
> 1. create a virtual directory for each user and copy the asp.net project

to
> each directory
> This is not a good solution.
> 2. Copy all the files to root directory (www.oursite.com) and when users
> type
> www.ourwebsite.com/jack or www.ourwebsite.com/sue, I can figure out the

name
> (jack or sue) and get the id of the user from database and bring the

content
> of that user's web pages from database.
>
> I put the following code into Application_BeginRequest event in

Global.asax
> file:
>
> dim sFolderName As String = Request.ApplicationPath.ToString.Trim("/")
> dim AgentID as long = GetAgentIdByFolderName(sFolderName) 'from the
> database
> WriteAgentIdToCookie(AgentID)
> Server.Transfer("AgentHomePage.aspx")
>
> After writing the agent Id to client's cookie, I redirect to agent home

page
> and at this page, I read cookie and get agent id and bring the agentinfo > like its picture URL and home page info from database.
>
> The problem is: When I type : www.oursite.com/Jack
> I faced this error: page can not be found!
>
> Do you think global.asax is a good place to put this code? and also this
> code: Request.ApplicationPath ? HttpRequest or something?
> Is there a better way to get what user typed I mean the folder name that
> comes after my website.
>
> I got web hosting service from another company so I do not have any

control
> over that company's IIS. I could not found a way in its web hosting's

admin
> site to set the default page. Any page with default or index name will

come
> when I type www.oursite.com without including file name.
>
> Please help. Thank you very much in advance
>
> Best Regards
> Andy Eshtry
>
>
>
>



Nov 18 '05 #4

This discussion thread is closed

Replies have been disabled for this discussion.