ASP.NET编程获取网站根目录方法小结

本文实例讲述了ASP.NET编程获取网站根目录方法。分享给大家供大家参考,具体如下:

获取网站根目录的方法有几种如:

Server.MapPath(Request.ServerVariables["PATH_INFO"])
Server.MapPath("/")
Server.MapPath("")//当前代码文件所在的目录路劲
Server.MapPath(".")
Server.MapPath("../")
Server.MapPath("..") 
Page.Request.ApplicationPath

以上的代码在http://localhost/EnglishClub/manage/WebForm1.aspx页面

运行结果:

C:\Inetpub\wwwroot\EnglishClub\manage\WebForm1.aspx
C:\Inetpub\wwwroot\
C:\Inetpub\wwwroot\EnglishClub\manage
C:\Inetpub\wwwroot\EnglishClub\manage
C:\Inetpub\wwwroot\EnglishClub\
C:\Inetpub\wwwroot\EnglishClub

以上的方法可以在.aspx中访问,但是如果你在。cs文件就不能用。

HttpContext.Current.Server.MapPath();
System.Web.HttpContext.Current.Request.PhysicalApplicationPath

在.cs文件中可以用。但是HttpContext.Current.Server.MapPath();这个获取的是文件的路径而不是根目录。

只有System.Web.HttpContext.Current.Request.PhysicalApplicationPath 这个才是获取的根目录,在写获取数据库路径是应该用这个,其他的都有问题。

System.Web.HttpContext.Current.Request.PhysicalApplicationPath
和Server.MapPath("~/")效果是一样的。

Server.MapPath("~/");//无论代码所在的文件的、页面路劲是什么,永远返回 C:\Inetpub\wwwroot\EnglishClub\(就是当前程序运行的所在根目录)

如果存储 附件的路劲 进数据库的话,不应该把绝对路劲存进去。应该只存储 文件名部分。例如:

/uploads/abc.txt
当需要浏览文件的时候,在在读取出来的路径:(即/uploads/abc.txt),前面+网站的路劲:例如:

http://abc.com+"/uploads/abc.txt"

补充:

ASP.NET中获取网站根目录和物理路径完整实例:

/// <summary>
/// 取得网站的根目录的URL
/// </summary>
/// <returns></returns>
public static string GetRootURI()
{
  string AppPath = "";
  HttpContext HttpCurrent = HttpContext.Current;
  HttpRequest Req;
  if (HttpCurrent != null)
  {
    Req = HttpCurrent.Request;
    string UrlAuthority = Req.Url.GetLeftPart(UriPartial.Authority);
    if (Req.ApplicationPath == null || Req.ApplicationPath == "/")
      //直接安装在  Web  站点
      AppPath = UrlAuthority;
    else
      //安装在虚拟子目录下
      AppPath = UrlAuthority + Req.ApplicationPath;
  }
  return AppPath;
}
/// <summary>
/// 取得网站的根目录的URL
/// </summary>
/// <param name="Req"></param>
/// <returns></returns>
public static string GetRootURI(HttpRequest Req)
{
  string AppPath = "";
  if(Req != null)
  {
    string UrlAuthority = Req.Url.GetLeftPart(UriPartial.Authority);
    if (Req.ApplicationPath == null || Req.ApplicationPath == "/")
      //直接安装在  Web  站点
      AppPath = UrlAuthority;
    else
      //安装在虚拟子目录下
      AppPath = UrlAuthority + Req.ApplicationPath;
  }
  return AppPath;
}
/// <summary>
/// 取得网站根目录的物理路径
/// </summary>
/// <returns></returns>
public static string GetRootPath()
{
  string AppPath = "";
  HttpContext HttpCurrent = HttpContext.Current;
  if (HttpCurrent != null)
  {
    AppPath = HttpCurrent.Server.MapPath("~");
  }
  else
  {
    AppPath = AppDomain.CurrentDomain.BaseDirectory;
    if (Regex.Match(AppPath, @"\\$", RegexOptions.Compiled).Success)
      AppPath = AppPath.Substring(0, AppPath.Length - 1);
  }
  return AppPath;
}

希望本文所述对大家asp.net程序设计有所帮助。

(0)

相关推荐

  • vs2010制作简单的asp.net网站

    直入主题: 打开visual studio 2010程序开发软件 单击菜单栏的文件,依次选新建->网站->ASP.NET空网站,这里我们选择空网站,利于今后DIY自己的网站,最好什么从头来,便于对各类架构的理解(若是选择ASP.NET网站也行,只是里面已经集成了一些东西) 这里我们默认解决方案的名称为WebSite1,单击确定后进入网站的代码页面,在右边的解决方案资源管理器里只有一个web.config文件,这个文件用于对网站进行全局化的设置 web.config其实是一个xml文档,里面有很

  • VS2010制作第一个简单网站

    制作一个简单示例网站的步骤: 一.启动VS 2010开发环境,选择菜单中的"文件",选择其中的"新建",再选择"网站",会弹出"新建网站"对话框. 二.在"新建网站"的对话框,在"已安装模板"中选择Visual C#,右侧的选择"ASP.NET网站"选项,单击"新建网站"中的"文件系统",下拉菜单中有"文件系统&quo

  • VS2010发布Web网站技术攻略

    VS2010 Web网站发布详解 对VS2010来说,发布Web是一件相当容易的事情,也许就是这个原因导致网上关于发布网站具体细节的资料很少.然而这些正是初学者所需要的,下面我详细介绍一下Web网站发布的具体过程. 第一步:在解决方案资源管理器中右击Web应用程序名(例如:newsSystem)-->点击发布,如图所示: 第二步:在弹出的对话框中,发布方法选:文件系统,目标位置自定义(如:选桌面的test文件夹),勾选"发布前删除所有现有文件"单选框,然后点击发布即可.如图: 补

  • ASP.NET网站实时显示时间的方法

    本文实例讲述了ASP.NET网站实时显示时间的方法.分享给大家供大家参考.具体方法如下: 在ASP.NET环境中开发设计网站或网络应用程序时,往往需要实时显示当前日期和时间.这时,通常使用AJAX控件来实现. 需要注意的是,在.NET Framework 2.0版本中,工具箱中是没有AJAX Extensions控件的.而.NET Framework 3.5版本中集成了AJAX. ASP.NET AJAX包括三部分: ①一个扩展客户端JavaScript功能的客户端库或框架: ②一个允许ASP.

  • ASP.NET网站使用Kindeditor富文本编辑器配置步骤

    1. 下载编辑器 下载 KindEditor 最新版本,下载页面: http://www.kindsoft.net/down.php 2. 部署编辑器 解压 kindeditor-x.x.x.zip 文件,将editor文件夹复制到web目录下  3.在网页中加入(ValidateRequest="false") 复制代码 代码如下: <%@ Page Language="C#" AutoEventWireup="true" Validat

  • asp.net网站安全从小做起与防范小结

    以下都以ASP.NET开发网站为例. 1.sql注入漏洞. 解决办法:使用存储过程,参数不要用字符串拼接.简单改进办法:使用SqlHelper和OledbHelper 2.跨站脚本漏洞 解决办法:"默认禁止,显式允许"的策略.具体参考:从客户端检测到有潜在危险的Request.Form值,禁止提交html标记(<>等被转义成<) 3.上传漏洞 解决办法:禁止上传目录的运行权限.只给读取权限.另外要禁止上传非法类型文件.不仅仅是aspx类型,包括很多,甚至htm.htm

  • asp.net获取网站目录物理路径示例

    页面后台cs文件的相对网站根目录的路径/view/Atlas 复制代码 代码如下: string rootPath1= Server.MapPath("~"); string rootPath2 = Request.ApplicationPath; string path1 = Server.MapPath("upload"); string path2 = Server.MapPath(""); string path3 = Server.Ma

  • asp.net B2B网站对接支付宝接口

    大型网上购物系统除了能让会员选择货到付款结账方式外,还应该提供一些更方便快捷的网上支付方式.如果网上商店没有足够的实力提供会员直接在网站中建立现金账户的功能,就可以将订单信息转接到支付宝,让会员从支付宝付款.当然就算会员可以在网站上建立自己的现金账户,提供支付宝支付功能也不失为另一种方便快捷的支付方式,这可以给客户提供更多可选的支付方式. 首先,网上购物系统必须与支付宝公司签订合作协议,以确保从本购物网站上传到 支付宝网站上的订单信息能被正确接收. 当会员于购物网站上买下一系列商品并选择支付宝付

  • ASP.NET 网站开发中常用到的广告效果代码

    用本贴持续记录一些收集的广告效果.希望给有需求的朋友们一些支持.也希望朋友们把我未记录的广告形式也给予一起回贴.使本贴更加的完善,也让更多的朋友们分享. 1.翻屏效果 翻屏效果 复制代码 代码如下: <html> <head></head> <body> <div style="HEIGHT:85px"> <script LANGUAGE='JavaScript'> document.ns = navigator.

  • asp.net网站的404错误页面的正确设置方法第1/2页

    什么是404错误 HTTP 404 错误意味着链接指向的网页不存在,即原始网页的URL失效,这种情况经常会发生,很难避免,比如说:网页URL生成规则改变.网页文件更名或移动位置.导入链接拼写错误等,导致原来的URL地址无法访问;当Web 服务器接到类似请求时,会返回一个404 状态码,告诉浏览器要请求的资源并不存在.但是,Web服务器默认的404错误页面,无论Apache还是IIS,均十分简陋.呆板且对用户不友好,无法给用户提供必要的信息以获取更多线索,无疑这会造成用户的流失. 404页面的作用

  • iis6网站属性没有asp.net选项卡的解决办法

    iis6安装了asp.net,但是网站属性中没有显示asp.net选项卡. 解决办法如下:   1,如果是只安装了.net framework 1.1 在iis中是不显示那个选项卡的.默认就会支持asp.net1.1.在安装了.net framework 2.0后,iis站点属性里才会有asp.net的选项.   2,安装asp.net2.0后,请关闭iis窗口,重新打开iis,iis站点属性里才会有asp.net的选项   3,如果还没有,那么就要重新在IIS中注册asp.net,方法如下:

  • ASP.net(C#)从其他网站抓取内容并截取有用信息的实现代码

    1. 需要引用的类库 复制代码 代码如下: using System.Net; using System.IO; using System.Text; using System.Text.RegularExpressions; 2. 获取其他网站网页内容的关键代码 复制代码 代码如下: WebRequest request = WebRequest.Create("http://目标网址.com/"); WebResponse response = request.GetRespons

  • 入侵ASP.net网站的经验附利用代码

    1. 对一般遇到.net的网站时 通常会注册个用户 第一选择利用上传判断的漏洞 加图片头GIF89A 顺利饶过 2. 第二种就是注入了, 在?id=xx后加单引号 " ' " 一般情况下 用NBSI 啊D来SCAN 都可以发现BUG页面 而且国内大多.net都是使用MSSQL数据库 发现注入点也可以从login下手 其实这个方法目前的成功率在75% 3. 不过遇到搜索型的,和没错误信息回显的时候 在这里就卡住了 大家可以看看网上一篇 搜索型注入的文章 运气好,数据库和WEB在一起 直接

  • ASP.NET MVC5网站开发用户登录、注销(五)

    一.创建ClaimsIdentity ClaimsIdentity(委托基于声明的标识)是在ASP.NET Identity身份认证系统的登录时要用到,我们在UserService中来生成它. 1.打开IBLL项目InterfaceUserService接口,添加接口方法ClaimsIdentity CreateIdentity(User user, string authenticationType); 2.打开BLL项目的UserService类,添加CreateIdentity方法的实现代

随机推荐