System.Web.HttpRequest.cs

时间:2020-03-27
本文章向大家介绍System.Web.HttpRequest.cs,主要包括System.Web.HttpRequest.cs使用实例、应用技巧、基本知识点总结和需要注意事项,具有一定的参考价值,需要的朋友可以参考一下。
ylbtech-System.Web.HttpRequest.cs
1.返回顶部
1、
#region 程序集 System.Web, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a
// C:\Program Files (x86)\Reference Assemblies\Microsoft\Framework\.NETFramework\v4.5\System.Web.dll
#endregion

using System.Collections.Specialized;
using System.IO;
using System.Reflection;
using System.Security.Authentication.ExtendedProtection;
using System.Security.Principal;
using System.Text;
using System.Threading;
using System.Web.Routing;

namespace System.Web
{
    //
    // 摘要:
    //     使 ASP.NET 能够读取客户端在 Web 请求期间发送的 HTTP 值。
    [DefaultMember("Item")]
    public sealed class HttpRequest
    {
        //
        // 摘要:
        //     初始化 System.Web.HttpRequest 对象。
        //
        // 参数:
        //   filename:
        //     与请求关联的文件的名称。
        //
        //   url:
        //     有关当前请求的 URL 的信息。
        //
        //   queryString:
        //     与请求一起发送的整个查询字符串('?' 之后的所有内容)。
        public HttpRequest(string filename, string url, string queryString);

        //
        // 摘要:
        //     从 System.Web.HttpRequest.QueryString、System.Web.HttpRequest.Form、System.Web.HttpRequest.Cookies
        //     或 System.Web.HttpRequest.ServerVariables 集合获取指定的对象。
        //
        // 参数:
        //   key:
        //     要获取的集合成员的名称。
        //
        // 返回结果:
        //     key 参数中指定的 System.Web.HttpRequest.QueryString、System.Web.HttpRequest.Form、System.Web.HttpRequest.Cookies
        //     或 System.Web.HttpRequest.ServerVariables 集合成员。 如果未找到指定的 key,则返回 null。
        public string this[string key] { get; }

        //
        // 摘要:
        //     获取当前用户的 System.Security.Principal.WindowsIdentity 类型。
        //
        // 返回结果:
        //     当前 Microsoft Internet Information Services (IIS) 身份验证设置的 System.Security.Principal.WindowsIdentity
        //     对象。
        //
        // 异常:
        //   T:System.InvalidOperationException:
        //     Web 应用程序正在 IIS 7 集成模式下运行,尚未引发 System.Web.HttpApplication.PostAuthenticateRequest
        //     事件。
        public WindowsIdentity LogonUserIdentity { get; }
        //
        // 摘要:
        //     获取与请求的 URL 相对应的物理文件系统路径。
        //
        // 返回结果:
        //     当前请求的文件系统路径。
        public string PhysicalPath { get; }
        //
        // 摘要:
        //     获取服务器上 ASP.NET 应用程序的虚拟应用程序根路径。
        //
        // 返回结果:
        //     当前应用程序的虚拟路径。
        public string ApplicationPath { get; }
        //
        // 摘要:
        //     获取当前正在执行的服务器应用程序的根目录的物理文件系统路径。
        //
        // 返回结果:
        //     当前应用程序的根目录的文件系统路径。
        public string PhysicalApplicationPath { get; }
        //
        // 摘要:
        //     获取客户端浏览器的原始用户代理信息。
        //
        // 返回结果:
        //     客户端浏览器的原始用户代理信息。
        public string UserAgent { get; }
        //
        // 摘要:
        //     获取客户端语言首选项的排序字符串数组。
        //
        // 返回结果:
        //     经过排序的客户端语言首选项的字符串数组,或者,如果为空,则为 null。
        public string[] UserLanguages { get; }
        //
        // 摘要:
        //     获取或设置有关正在请求的客户端的浏览器功能的信息。
        //
        // 返回结果:
        //     列出客户端浏览器功能的 System.Web.HttpBrowserCapabilities 对象。
        public HttpBrowserCapabilities Browser { get; set; }
        //
        // 摘要:
        //     获取远程客户端的 DNS 名称。
        //
        // 返回结果:
        //     远程客户端的 DNS 名称。
        public string UserHostName { get; }
        //
        // 摘要:
        //     获取远程客户端的 IP 主机地址。
        //
        // 返回结果:
        //     远程客户端的 IP 地址。
        public string UserHostAddress { get; }
        //
        // 摘要:
        //     获取当前请求的原始 URL。
        //
        // 返回结果:
        //     当前请求的原始 URL。
        public string RawUrl { get; }
        //
        // 摘要:
        //     获取有关当前请求的 URL 的信息。
        //
        // 返回结果:
        //     包含有关当前请求的 URL 的信息的 System.Uri 对象。
        public Uri Url { get; }
        //
        // 摘要:
        //     获取有关客户端上次请求的 URL 的信息,该请求链接到当前的 URL。
        //
        // 返回结果:
        //     System.Uri 对象。
        //
        // 异常:
        //   T:System.UriFormatException:
        //     HTTP Referer 请求标头格式不正确,并且不能被转换为 System.Uri 对象。
        public Uri UrlReferrer { get; }
        //
        // 摘要:
        //     获取当前 System.Web.HttpWorkerRequest 实例的 System.Security.Authentication.ExtendedProtection.ChannelBinding
        //     对象。
        //
        // 返回结果:
        //     当前 System.Web.HttpWorkerRequest 实例的 System.Security.Authentication.ExtendedProtection.ChannelBinding
        //     对象。
        //
        // 异常:
        //   T:System.PlatformNotSupportedException:
        //     当前的 System.Web.HttpWorkerRequest 对象不是 System.Web.Hosting.IIS7WorkerRequest 对象或
        //     System.Web.Hosting.ISAPIWorkerRequestInProc 对象。
        public ChannelBinding HttpChannelBinding { get; }
        //
        // 摘要:
        //     获取 System.Web.HttpRequest.QueryString、System.Web.HttpRequest.Form、System.Web.HttpRequest.Cookies
        //     和 System.Web.HttpRequest.ServerVariables 项的组合集合。
        //
        // 返回结果:
        //     System.Collections.Specialized.NameValueCollection 对象。
        public NameValueCollection Params { get; }
        //
        // 摘要:
        //     获取 HTTP 查询字符串变量集合。
        //
        // 返回结果:
        //     System.Collections.Specialized.NameValueCollection,包含由客户端发送的查询字符串变量的集合。 例如,如果请求
        //     URL 为 http://www.contoso.com/default.aspx?id=44,则 System.Web.HttpRequest.QueryString
        //     的值为“id=44”。
        public NameValueCollection QueryString { get; }
        //
        // 摘要:
        //     获取窗体变量集合。
        //
        // 返回结果:
        //     表示窗体变量集合的 System.Collections.Specialized.NameValueCollection。
        public NameValueCollection Form { get; }
        //
        // 摘要:
        //     获取 HTTP 头集合。
        //
        // 返回结果:
        //     头的 System.Collections.Specialized.NameValueCollection。
        public NameValueCollection Headers { get; }
        //
        // 摘要:
        //     提供对 HTTP 请求值的访问权限,不触发请求验证。
        //
        // 返回结果:
        //     通过使用请求验证请求尚未检查的值。
        public UnvalidatedRequestValues Unvalidated { get; }
        //
        // 摘要:
        //     获取 Web 服务器变量的集合。
        //
        // 返回结果:
        //     服务器变量的 System.Collections.Specialized.NameValueCollection。
        public NameValueCollection ServerVariables { get; }
        //
        // 摘要:
        //     获取客户端发送的 Cookie 的集合。
        //
        // 返回结果:
        //     表示客户端的 Cookie 变量的 System.Web.HttpCookieCollection 对象。
        public HttpCookieCollection Cookies { get; }
        //
        // 摘要:
        //     获取采用多部分 MIME 格式的由客户端上载的文件的集合。
        //
        // 返回结果:
        //     System.Web.HttpFileCollection 对象,表示客户端上载的文件集合。 System.Web.HttpFileCollection
        //     对象的项属于 System.Web.HttpPostedFile 类型。
        public HttpFileCollection Files { get; }
        //
        // 摘要:
        //     获取传入的 HTTP 实体主体的内容。
        //
        // 返回结果:
        //     表示传入的 HTTP 内容主体的内容的 System.IO.Stream 对象。
        public Stream InputStream { get; }
        //
        // 摘要:
        //     获取当前输入流中的字节数。
        //
        // 返回结果:
        //     输入流中的字节数。
        public int TotalBytes { get; }
        //
        // 摘要:
        //     获取或设置在读取当前输入流时要使用的筛选器。
        //
        // 返回结果:
        //     要用作筛选器的 System.IO.Stream 对象。
        //
        // 异常:
        //   T:System.Web.HttpException:
        //     指定的 System.IO.Stream 无效。
        public Stream Filter { get; set; }
        //
        // 摘要:
        //     获取当前请求的客户端安全证书。
        //
        // 返回结果:
        //     包含有关客户端安全证书设置的信息的 System.Web.HttpClientCertificate 对象。
        public HttpClientCertificate ClientCertificate { get; }
        //
        // 摘要:
        //     获取具有 URL 扩展名的资源的附加路径信息。
        //
        // 返回结果:
        //     资源的附加路径信息。
        public string PathInfo { get; }
        //
        // 摘要:
        //     获取指示请求实体是否被读以及如何被读的值。
        //
        // 返回结果:
        //     指示的值请求实体怎么读取,或者未读取。
        public ReadEntityBodyMode ReadEntityBodyMode { get; }
        //
        // 摘要:
        //     获取应用程序根的虚拟路径,并通过对应用程序根使用波形符 (~) 表示法(例如,以“~/page.aspx”的形式)使该路径成为相对路径。
        //
        // 返回结果:
        //     当前请求的应用程序根的虚拟路径。
        public string AppRelativeCurrentExecutionFilePath { get; }
        //
        // 摘要:
        //     获取当前请求的虚拟路径。
        //
        // 返回结果:
        //     当前请求的虚拟路径。
        public string CurrentExecutionFilePath { get; }
        //
        // 摘要:
        //     获取 System.Web.HttpRequest.CurrentExecutionFilePath 属性中指定的文件名的扩展名。
        //
        // 返回结果:
        //     System.Web.HttpRequest.CurrentExecutionFilePath 属性中指定的文件名的扩展名。
        public string CurrentExecutionFilePathExtension { get; }
        //
        // 摘要:
        //     获取当前请求的 System.Web.Routing.RequestContext 实例。
        //
        // 返回结果:
        //     当前请求的 System.Web.Routing.RequestContext 实例。 对于非路由请求,返回的 System.Web.Routing.RequestContext
        //     对象为空。
        public RequestContext RequestContext { get; set; }
        //
        // 摘要:
        //     获取一个值,该值指示该请求是否来自本地计算机。
        //
        // 返回结果:
        //     如果该请求来自本地计算机,则为 true;否则,为 false。
        public bool IsLocal { get; }
        //
        // 摘要:
        //     获取客户端使用的 HTTP 数据传输方法(如 GET、POST 或 HEAD)。
        //
        // 返回结果:
        //     客户端使用的 HTTP 数据传输方法。
        public string HttpMethod { get; }
        //
        // 摘要:
        //     获取或设置客户端使用的 HTTP 数据传输方法(GET 或 POST)。
        //
        // 返回结果:
        //     表示客户端发送的 HTTP 调用类型的字符串。
        public string RequestType { get; set; }
        //
        // 摘要:
        //     获取或设置传入请求的 MIME 内容类型。
        //
        // 返回结果:
        //     表示传入请求的 MIME 内容类型的字符串,例如,“text/html”。 其他常见 MIME 类型包括“audio.wav”、“image/gif”和“application/pdf”。
        public string ContentType { get; set; }
        //
        // 摘要:
        //     指定客户端发送的内容长度(以字节计)。
        //
        // 返回结果:
        //     客户端发送的内容的长度(以字节为单位)。
        public int ContentLength { get; }
        //
        // 摘要:
        //     获取请求超时时去除的 System.Threading.CancellationToken 对象。
        //
        // 返回结果:
        //     取消标记。
        public CancellationToken TimedOutToken { get; }
        //
        // 摘要:
        //     获取客户端支持的 MIME 接受类型的字符串数组。
        //
        // 返回结果:
        //     客户端支持的 MIME 接受类型的字符串数组。
        public string[] AcceptTypes { get; }
        //
        // 摘要:
        //     获取一个值,该值指示是否验证了请求。
        //
        // 返回结果:
        //     如果请求已经过身份验证,则为 true;否则,为 false。
        public bool IsAuthenticated { get; }
        //
        // 摘要:
        //     获取一个值,指示 HTTP 连接是否使用安全套接字(即 HTTPS)。
        //
        // 返回结果:
        //     如果连接是 SSL 连接,则为 true;否则为 false。
        public bool IsSecureConnection { get; }
        //
        // 摘要:
        //     获取当前请求的虚拟路径。
        //
        // 返回结果:
        //     当前请求的虚拟路径。
        public string Path { get; }
        //
        // 摘要:
        //     获取该用户的匿名标识符(如果存在)。
        //
        // 返回结果:
        //     字符串,表示当前匿名用户标识符。
        public string AnonymousID { get; }
        //
        // 摘要:
        //     获取当前请求的虚拟路径。
        //
        // 返回结果:
        //     当前请求的虚拟路径。
        public string FilePath { get; }
        //
        // 摘要:
        //     获取或设置实体主体的字符集。
        //
        // 返回结果:
        //     表示客户端的字符集的 System.Text.Encoding 对象。
        public Encoding ContentEncoding { get; set; }

        //
        // 摘要:
        //     强制地终止基础 TCP 连接,会导致任何显著的 I/O 失败。
        public void Abort();
        //
        // 摘要:
        //     执行对当前输入流进行指定字节数的二进制读取。
        //
        // 参数:
        //   count:
        //     要读取的字节数。
        //
        // 返回结果:
        //     字节数组。
        //
        // 异常:
        //   T:System.ArgumentOutOfRangeException:
        //     count 为 0。 - 或 - count 大于可用字节数。
        public byte[] BinaryRead(int count);
        //
        // 摘要:
        //     获取一个 System.IO.Stream 对象,该对象可用于读取传入的 HTTP 实体主体。
        //
        // 返回结果:
        //     一个 System.IO.Stream 对象,该对象可用于读取传入的 HTTP 实体主体。
        //
        // 异常:
        //   T:System.Web.HttpException:
        //     请求的实体主体已被加载和分析。 导致加载和分析实体正文的属性的示例包括: System.Web.HttpRequest.Form 属性。 System.Web.HttpRequest.Files
        //     属性。 System.Web.HttpRequest.InputStream 属性。 System.Web.HttpRequest.GetBufferlessInputStream
        //     方法。 若要避免此异常,请首先调用 System.Web.HttpRequest.ReadEntityBodyMode 方法。 如果客户在实体正文读取时断开连接,则也将引发异常。
        public Stream GetBufferedInputStream();
        //
        // 摘要:
        //     获取一个 System.IO.Stream 对象,该对象可用于读取传入的 HTTP 实体主体。
        //
        // 返回结果:
        //     一个 System.IO.Stream 对象,该对象可用于读取传入的 HTTP 实体主体。
        //
        // 异常:
        //   T:System.Web.HttpException:
        //     请求的实体主体已被加载和分析。 导致加载和分析实体正文的属性的示例包括: System.Web.HttpRequest.FormSystem.Web.HttpRequest.InputStreamSystem.Web.HttpRequest.FilesSystem.Web.HttpRequest.GetBufferedInputStream若要避免此异常,请首先调用
        //     System.Web.HttpRequest.ReadEntityBodyMode 方法。 如果客户在实体正文读取时断开连接,则也将引发异常。
        public Stream GetBufferlessInputStream();
        //
        // 摘要:
        //     获取能被用于读取正在到来的 HTTP 实体正文的 System.IO.Stream 对象,同时随意地禁止设置在 System.Web.Configuration.HttpRuntimeSection.MaxRequestLength
        //     属性中的请求长度限制。
        //
        // 参数:
        //   disableMaxRequestLength:
        //     使请求长度限制失去意义,则为 true;否则为 false。
        //
        // 返回结果:
        //     一个 System.IO.Stream 对象,该对象可用于读取传入的 HTTP 实体主体。
        //
        // 异常:
        //   T:System.Web.HttpException:
        //     请求的实体主体已被加载和分析。 导致加载和分析实体正文的属性的示例包括: System.Web.HttpRequest.Form 属性。 System.Web.HttpRequest.Files
        //     属性。 System.Web.HttpRequest.InputStream 属性。 System.Web.HttpRequest.GetBufferedInputStream
        //     方法。 若要避免此异常,请首先调用 System.Web.HttpRequest.ReadEntityBodyMode 方法。 如果客户在实体正文读取时断开连接,则也将引发异常。
        public Stream GetBufferlessInputStream(bool disableMaxRequestLength);
        //
        // 摘要:
        //     向 IIS 提供 HTTP 请求实体正文的副本以及有关请求实体对象的信息。
        //
        // 参数:
        //   buffer:
        //     一个包含请求实体数据的数组。
        //
        //   offset:
        //     buffer 中开始存储请求实体数据的位置,该位置从零开始计数。
        //
        //   count:
        //     要读取到 buffer 数组中的字节数。
        //
        // 异常:
        //   T:System.PlatformNotSupportedException:
        //     在 IIS 7.0 以前的 IIS 版本上调用该方法。
        //
        //   T:System.ArgumentNullException:
        //     buffer 为 null。
        //
        //   T:System.ArgumentOutOfRangeException:
        //     count 是负值。
        //
        //   T:System.ArgumentOutOfRangeException:
        //     count 是负值。
        //
        //   T:System.ArgumentException:
        //     count 中的项目数大于 buffer 中的可用控件,指定了 offset 值。
        public void InsertEntityBody(byte[] buffer, int offset, int count);
        //
        // 摘要:
        //     向 IIS 提供 HTTP 请求实体正文的副本。
        //
        // 异常:
        //   T:System.PlatformNotSupportedException:
        //     在 IIS 7.0 以前的 IIS 版本上调用该方法。
        public void InsertEntityBody();
        //
        // 摘要:
        //     将传入图像字段窗体参数映射为适当的 x 坐标值和 y 坐标值。
        //
        // 参数:
        //   imageFieldName:
        //     窗体图像映射的名称。
        //
        // 返回结果:
        //     二维整数数组。
        public int[] MapImageCoordinates(string imageFieldName);
        //
        // 摘要:
        //     将指定的虚拟路径映射到物理路径。
        //
        // 参数:
        //   virtualPath:
        //     当前请求的虚拟路径(绝对路径或相对路径)。
        //
        //   baseVirtualDir:
        //     用于相对解析的虚拟基目录路径。
        //
        //   allowCrossAppMapping:
        //     true 表示 virtualPath 可能属于另一个应用程序;否则,为 false。
        //
        // 返回结果:
        //     服务器上的物理路径。
        //
        // 异常:
        //   T:System.Web.HttpException:
        //     allowCrossMapping 为 false,virtualPath 属于另一个应用程序。
        //
        //   T:System.Web.HttpException:
        //     allowCrossMapping 为 false,virtualPath 属于另一个应用程序。
        public string MapPath(string virtualPath, string baseVirtualDir, bool allowCrossAppMapping);
        //
        // 摘要:
        //     将指定的虚拟路径映射到物理路径。
        //
        // 参数:
        //   virtualPath:
        //     当前请求的虚拟路径(绝对路径或相对路径)。
        //
        // 返回结果:
        //     由 virtualPath 指定的服务器物理路径。
        //
        // 异常:
        //   T:System.Web.HttpException:
        //     没有为该请求定义 System.Web.HttpContext 对象。
        public string MapPath(string virtualPath);
        //
        // 摘要:
        //     将传入图像字段窗体参数映射为适当的 x 和 y 坐标值。
        //
        // 参数:
        //   imageFieldName:
        //     图像字段的名称。
        //
        // 返回结果:
        //     x 和 y 坐标值。
        public double[] MapRawImageCoordinates(string imageFieldName);
        //
        // 摘要:
        //     将 HTTP 请求保存到磁盘。
        //
        // 参数:
        //   filename:
        //     物理驱动器路径。
        //
        //   includeHeaders:
        //     一个布尔值,该值指定是否应将 HTTP 头保存到磁盘。
        //
        // 异常:
        //   T:System.Web.HttpException:
        //     System.Web.Configuration.HttpRuntimeSection 的 System.Web.Configuration.HttpRuntimeSection.RequireRootedSaveAsPath
        //     属性设置为 true,但 filename 不是绝对路径。
        public void SaveAs(string filename, bool includeHeaders);
        //
        // 摘要:
        //     对通过 System.Web.HttpRequest.Cookies 、System.Web.HttpRequest.Form 和 System.Web.HttpRequest.QueryString
        //     属性访问的集合进行验证。
        //
        // 异常:
        //   T:System.Web.HttpRequestValidationException:
        //     从客户端接收到具有潜在危险的数据。
        public void ValidateInput();
    }
}
2、
2.返回顶部
3.返回顶部
4.返回顶部
5.返回顶部
6.返回顶部
作者:ylbtech
出处:http://ylbtech.cnblogs.com/
本文版权归作者和博客园共有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接,否则保留追究法律责任的权利。

原文地址:https://www.cnblogs.com/storebook/p/12584171.html