Поделиться через


HttpContext Класс

Определение

Инкапсулирует все сведения о отдельном HTTP-запросе.

public ref class HttpContext sealed : IServiceProvider
public sealed class HttpContext : IServiceProvider
type HttpContext = class
    interface IServiceProvider
Public NotInheritable Class HttpContext
Implements IServiceProvider
Наследование
HttpContext
Реализации

Примеры

В следующем примере показано, как получить доступ к свойствам объекта и отобразить их HttpContext . Доступ к контексту текущего Page HTTP-запроса осуществляется с помощью Context свойства объекта.

<%@ Page Language="C#" %>

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">

<script runat="server">

    protected void Page_Load(object sender, EventArgs e)
    {
        // The HttpContext associated with the page can be accessed by the Context property.
        System.Text.StringBuilder sb = new System.Text.StringBuilder();
        // Use the current HttpContext object to determine if custom errors are enabled.
        sb.Append("Is custom errors enabled: " +
            Context.IsCustomErrorEnabled.ToString() + "<br/>");

        // Use the current HttpContext object to determine if debugging is enabled.
        sb.Append("Is debugging enabled: " +
            Context.IsDebuggingEnabled.ToString() + "<br/>");

        // Use the current HttpContext object to access the current TraceContext object.
        sb.Append("Trace Enabled: " +
            Context.Trace.IsEnabled.ToString() + "<br/>");

        // Use the current HttpContext object to access the current HttpApplicationState object.
        sb.Append("Number of items in Application state: " +
            Context.Application.Count.ToString() + "<br/>");

        // Use the current HttpContext object to access the current HttpSessionState object.
        // Session state may not be configured.
        try
        {
            sb.Append("Number of items in Session state: " +
                Context.Session.Count.ToString() + "<br/>");
        }
        catch
        {
            sb.Append("Session state not enabled. <br/>");
        }

        // Use the current HttpContext object to access the current Cache object.
        sb.Append("Number of items in the cache: " +
            Context.Cache.Count.ToString() + "<br/>");

        // Use the current HttpContext object to determine the timestamp for the current HTTP Request.
        sb.Append("Timestamp for the HTTP request: " +
            Context.Timestamp.ToString() + "<br/>");

        // Assign StringBuilder object to output label.
        OutputLabel.Text = sb.ToString();
    }
</script>

<html xmlns="http://www.w3.org/1999/xhtml" >
<head runat="server">
    <title>HttpContext Example</title>
</head>
<body>
    <form id="form1" runat="server">
    <div>
       Using the current HttpContext to get information about the current page.
       <br />
       <asp:Label id="OutputLabel" runat="server"></asp:Label>           
    </div>
    </form>
</body>
</html>
<%@ Page Language="VB" %>

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">

<script runat="server">

    Protected Sub Page_Load(ByVal sender As Object, ByVal e As System.EventArgs)
        ' The HttpContext associated with the page can be accessed by the Context property.
        Dim sb As New System.Text.StringBuilder()

        ' Use the current HttpContext object to determine if custom errors are enabled.
        sb.Append("Is custom errors enabled: " & _
            Context.IsCustomErrorEnabled.ToString() & "<br/>")

        ' Use the current HttpContext object to determine if debugging is enabled.
        sb.Append("Is debugging enabled: " & _
            Context.IsDebuggingEnabled.ToString() & "<br/>")

        ' Use the current HttpContext object to access the current TraceContext object.
        sb.Append("Trace Enabled: " & _
            Context.Trace.IsEnabled.ToString() & "<br/>")

        ' Use the current HttpContext object to access the current HttpApplicationState object.
        sb.Append("Number of items in Application state: " & _
            Context.Application.Count.ToString() & "<br/>")

        ' Use the current HttpContext object to access the current HttpSessionState object.
        ' Session state may not be configured.
        Try
            sb.Append("Number of items in Session state: " & _
                Context.Session.Count.ToString() & "<br/>")
        Catch ex As Exception
            sb.Append("Session state not enabled. <br/>")
        End Try

        ' Use the current HttpContext object to access the current Cache object.
        sb.Append("Number of items in the cache: " & _
            Context.Cache.Count.ToString() & "<br/>")

        ' Use the current HttpContext object to determine the timestamp for the current HTTP Request.
        sb.Append("Timestamp for the HTTP request: " & _
            Context.Timestamp.ToString() & "<br/>")

        ' Assign StringBuilder object to output label.
        OutputLabel.Text = sb.ToString()
    End Sub
</script>

<html xmlns="http://www.w3.org/1999/xhtml" >
<head runat="server">
    <title>HttpContext Example</title>
</head>
<body>
    <form id="form1" runat="server">
    <div>
       Using the current HttpContext to get information about the current page.
       <br />
       <asp:Label id="OutputLabel" runat="server"></asp:Label>           
    </div>
    </form>
</body>
</html>

Комментарии

Классы, наследующие IHttpModule и IHttpHandler интерфейсы, предоставляют ссылку на HttpContext объект для текущего HTTP-запроса. Объект предоставляет доступ к встроенным Requestи ResponseServer свойствам запроса.

Это важно

Этот объект готов к сборке мусора после HttpRequest завершения. Его использование после завершения запроса может привести к неопределенному поведению, например NullReferenceException.

Этот объект доступен только в потоке, управляемом ASP.NET. Использование в фоновых потоках может привести к неопределенному поведению.

Конструкторы

Имя Описание
HttpContext(HttpRequest, HttpResponse)

Инициализирует новый экземпляр класса с помощью указанных HttpContext объектов запроса и ответа.

HttpContext(HttpWorkerRequest)

Инициализирует новый экземпляр HttpContext класса, использующего указанный объект рабочего запроса.

Свойства

Имя Описание
AllErrors

Возвращает массив ошибок, накопленных при обработке HTTP-запроса.

AllowAsyncDuringSyncStages

Возвращает или задает значение, указывающее, разрешены ли асинхронные операции во время обработки запросов ASP.NET, когда они не ожидались.

Application

HttpApplicationState Возвращает объект для текущего HTTP-запроса.

ApplicationInstance

Возвращает или задает HttpApplication объект для текущего HTTP-запроса.

AsyncPreloadMode

Возвращает или задает объект, содержащий флаги, относящиеся к асинхронной предварительной загрузке.

Cache

Cache Возвращает объект для текущего домена приложения.

Current

Возвращает или задает HttpContext объект для текущего HTTP-запроса.

CurrentHandler

IHttpHandler Возвращает объект, представляющий выполняющийся в данный момент обработчик.

CurrentNotification

Возвращает значение, указывающее текущее RequestNotificationHttpApplication событие, которое обрабатывается.

Error

Возвращает первую ошибку (при наличии), накапливаемую во время обработки HTTP-запроса.

Handler

Возвращает или задает объект, ответственный IHttpHandler за обработку HTTP-запроса.

IsCustomErrorEnabled

Возвращает значение, указывающее, включены ли пользовательские ошибки для текущего HTTP-запроса.

IsDebuggingEnabled

Возвращает значение, указывающее, находится ли текущий HTTP-запрос в режиме отладки.

IsPostNotification

Возвращает значение, которое является текущей точкой обработки в конвейере ASP.NET сразу после HttpApplication завершения обработки события.

IsWebSocketRequest

Возвращает значение, указывающее, является ли запрос запросом AspNetWebSocket .

IsWebSocketRequestUpgrading

Возвращает значение, указывающее, обновляется ли подключение с HTTP-подключения к соединению AspNetWebSocket .

Items

Возвращает коллекцию ключей и значений, которую можно использовать для упорядочивания и совместного IHttpModule использования данных между интерфейсом и IHttpHandler интерфейсом во время HTTP-запроса.

PageInstrumentation

Возвращает ссылку на экземпляр службы инструментирования страниц для этого запроса.

PreviousHandler

IHttpHandler Возвращает объект родительского обработчика.

Profile

ProfileBase Возвращает объект для текущего профиля пользователя.

Request

HttpRequest Возвращает объект для текущего HTTP-запроса.

Response

HttpResponse Возвращает объект для текущего HTTP-ответа.

Server

Возвращает объект, предоставляющий методы, используемые в обработке HttpServerUtility веб-запросов.

Session

HttpSessionState Возвращает объект для текущего HTTP-запроса.

SkipAuthorization

Возвращает или задает значение, указывающее, должен ли UrlAuthorizationModule объект пропустить проверку авторизации для текущего запроса.

ThreadAbortOnTimeout

Возвращает или задает значение, указывающее, должен ли среда выполнения ASP.NET вызывать Abort() поток, обслуживающий этот запрос при истечении времени ожидания запроса.

Timestamp

Возвращает начальную метку времени текущего HTTP-запроса.

Trace

TraceContext Возвращает объект для текущего HTTP-ответа.

User

Возвращает или задает сведения о безопасности для текущего HTTP-запроса.

WebSocketNegotiatedProtocol

Получает согласованный протокол, отправленный с сервера клиенту для AspNetWebSocket подключения.

WebSocketRequestedProtocols

Возвращает упорядоченный список протоколов, запрошенных клиентом.

Методы

Имя Описание
AcceptWebSocketRequest(Func<AspNetWebSocketContext,Task>, AspNetWebSocketOptions)

Принимает запрос с помощью указанной пользовательской AspNetWebSocket функции и объекта параметров.

AcceptWebSocketRequest(Func<AspNetWebSocketContext,Task>)

Принимает запрос с помощью указанной пользовательской AspNetWebSocket функции.

AddError(Exception)

Добавляет исключение в коллекцию исключений для текущего HTTP-запроса.

AddOnRequestCompleted(Action<HttpContext>)

Вызывает виртуальное событие, возникающее при завершении HTTP-части запроса.

ClearError()

Удаляет все ошибки для текущего HTTP-запроса.

DisposeOnPipelineCompleted(IDisposable)

Позволяет вызывать метод объекта Dispose() при AspNetWebSocket завершении соединения этой части запроса.

Equals(Object)

Определяет, равен ли указанный объект текущему объекту.

(Унаследовано от Object)
GetAppConfig(String)
Устаревшие..

Возвращает запрошенные сведения о конфигурации для текущего приложения.

GetConfig(String)
Устаревшие..

Возвращает запрошенные сведения о конфигурации для текущего HTTP-запроса.

GetGlobalResourceObject(String, String, CultureInfo)

Возвращает объект ресурса уровня приложения на основе указанных ClassKey и ResourceKey свойств, а также CultureInfo объекта.

GetGlobalResourceObject(String, String)

Возвращает объект ресурса уровня приложения на основе указанных ClassKey и ResourceKey свойств.

GetHashCode()

Служит хэш-функцией по умолчанию.

(Унаследовано от Object)
GetLocalResourceObject(String, String, CultureInfo)

Возвращает объект ресурса уровня страницы на основе указанных VirtualPath и ResourceKey свойств, а также CultureInfo объекта.

GetLocalResourceObject(String, String)

Возвращает объект ресурса уровня страницы на основе указанных VirtualPath и ResourceKey свойств.

GetSection(String)

Возвращает указанный раздел конфигурации для конфигурации текущего приложения по умолчанию.

GetType()

Возвращает Type текущего экземпляра.

(Унаследовано от Object)
MemberwiseClone()

Создает неглубокую копию текущей Object.

(Унаследовано от Object)
RemapHandler(IHttpHandler)

Позволяет указать обработчик запроса.

RewritePath(String, Boolean)

Перезаписывает URL-адрес с помощью заданного пути и логическое значение, указывающее, изменяется ли виртуальный путь для ресурсов сервера.

RewritePath(String, String, String, Boolean)

Перезаписывает URL-адрес, используя заданный виртуальный путь, сведения о пути, сведения о строке запроса и логическое значение, указывающее, задан ли путь к файлу клиента путь перезаписи.

RewritePath(String, String, String)

Перезаписывает URL-адрес с помощью заданного пути, сведений о пути и строковых данных запроса.

RewritePath(String)

Перезаписывает URL-адрес с помощью заданного пути.

SetSessionStateBehavior(SessionStateBehavior)

Задает тип поведения состояния сеанса, необходимого для поддержки HTTP-запроса.

ToString()

Возвращает строку, представляющую текущий объект.

(Унаследовано от Object)

Явные реализации интерфейса

Имя Описание
IServiceProvider.GetService(Type)

Возвращает объект для текущего типа службы.

Применяется к

См. также раздел