Re: Server.MapPath & Request.MapPath



The way I look at it, there's a single MapPath method
which is called in different contexts with different parameters.

public virtual string MapPath(string virtualPath)
{
return null;
}

public string MapPath(string virtualPath)
{
return this.MapPath(VirtualPath.CreateAllowNull(virtualPath));
}

internal string MapPath(VirtualPath virtualPath)
{
if (this._wr != null)
{
return this.MapPath(virtualPath, this.FilePathObject, true);
}
return virtualPath.MapPath();
}

public string MapPath(string virtualPath, string baseVirtualDir, bool allowCrossAppMapping)
{
VirtualPath filePathObject;
if (string.IsNullOrEmpty(baseVirtualDir))
{
filePathObject = this.FilePathObject;
}
else
{
filePathObject = VirtualPath.CreateTrailingSlash(baseVirtualDir);
}
return this.MapPath(VirtualPath.CreateAllowNull(virtualPath), filePathObject, allowCrossAppMapping);
}

internal string MapPath(VirtualPath virtualPath, VirtualPath baseVirtualDir, bool allowCrossAppMapping)
{
if (this._wr == null)
{
throw new HttpException(SR.GetString("Cannot_map_path_without_context"));
}
if (virtualPath == null)
{
virtualPath = VirtualPath.Create(".");
}
VirtualPath path = virtualPath;
if (baseVirtualDir != null)
{
virtualPath = baseVirtualDir.Combine(virtualPath);
}
if (!allowCrossAppMapping)
{
virtualPath.FailIfNotWithinAppRoot();
}
string str = virtualPath.MapPathInternal();
if (((virtualPath.VirtualPathString == "/") && (path.VirtualPathString != "/"))
&& (!path.HasTrailingSlash && UrlPath.PathEndsWithExtraSlash(str)))
{
str = str.Substring(0, str.Length - 1);
}
InternalSecurityPermissions.PathDiscovery(str).Demand();
return str;
}

public string MapPath(string path)
{
if (this._context == null)
{
throw new HttpException(SR.GetString("Server_not_available"));
}
return this._context.Request.MapPath(path);
}

public string MapPath()
{
return HostingEnvironment.MapPath(this);
}



Juan T. Llibre, asp.net MVP
asp.net faq : http://asp.net.do/faq/
foros de asp.net, en espanol : http://asp.net.do/foros/
======================================
"Michael Nemtsev" <nemtsev@xxxxxxx> wrote in message news:3d9fba1aec828c9d64fc67e45f0@xxxxxxxxxxxxxxxxxxxxxxx
Hello rn5a@xxxxxxxxxxxxxx,

There are no difference in this aspect, because the Server.MapPath calls the _context.Request.MapPath(path)
inside its method

---
WBR, Michael Nemtsev [.NET/C# MVP] :: blog: http://spaces.live.com/laflour
"The greatest danger for most of us is not that our aim is too high and we miss it, but that it is too low and we
reach it" (c) Michelangelo

Server.MapPath returns the physical file path that corresponds to the
specified virtual path whereas Request.MapPath maps the specified
virtual path to a physical path. Assuming that a file named Hello.aspx
resides in C:\Inetpub\wwwroot\MyFolder, the output of both

Response.Write(Server.MapPath("Hello.aspx"))

&

Response.Write(Request.MapPath("Hello.aspx"))

is C:\Inetpub\wwwroot\MyFolder\Hello.aspx. So what's the difference
between Server.MapPath & Request.MapPath?

Thanks








.



Relevant Pages

  • Re: Does GridView.DataBind work under medium trust with custom obj
    ... virtualPath, Type requiredBaseType, HttpContext context, Boolean ... System.Web.UI.PageHandlerFactory.GetHandlerHelper(HttpContext context, ... String requestType, VirtualPath virtualPath, String physicalPath) +306 ...
    (microsoft.public.dotnet.framework.aspnet)
  • Re: Does GridView.DataBind work under medium trust with custom obj
    ... virtualPath, Type requiredBaseType, HttpContext context, Boolean ... System.Web.UI.PageHandlerFactory.GetHandlerHelper(HttpContext context, ... String requestType, VirtualPath virtualPath, String physicalPath) +306 ...
    (microsoft.public.dotnet.framework.aspnet)
  • ExecutionEngineException :Failed to load JIT compiler
    ... Request information: ... virtualPath, Type requiredBaseType, HttpContext context, Boolean ... String requestType, VirtualPath virtualPath, String physicalPath) ...
    (microsoft.public.dotnet.framework.clr)
  • Error for 2.0
    ... Request information: ... virtualPath, Type requiredBaseType, HttpContext context, Boolean ... String requestType, VirtualPath virtualPath, String physicalPath) ...
    (microsoft.public.vsnet.debugging)
  • Re: [ASP.Net2] Object reference not set to an instance of an object.
    ... Object reference not set to an instance of an object. ... virtualPath, Type requiredBaseType, HttpContext context, Boolean ... String requestType, VirtualPath virtualPath, String physicalPath) +31 ...
    (microsoft.public.dotnet.framework.aspnet)