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


WebAuditEvent Класс

Определение

Служит базовым классом для всех событий аудита контроля рабочего состояния ASP.NET.

public ref class WebAuditEvent : System::Web::Management::WebManagementEvent
public class WebAuditEvent : System.Web.Management.WebManagementEvent
type WebAuditEvent = class
    inherit WebManagementEvent
Public Class WebAuditEvent
Inherits WebManagementEvent
Наследование
Производный

Примеры

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


using System;
using System.Text;
using System.Web;
using System.Web.Management;

namespace SamplesAspNet
{
    // Implements a custom WebAuditEvent class. 
    public class SampleWebAuditEvent : System.Web.Management.WebAuditEvent
    {
        private string customCreatedMsg, customRaisedMsg;

        // Invoked in case of events identified only by their event code.
        public SampleWebAuditEvent(string msg, object eventSource, 
            int eventCode): base(msg, eventSource, eventCode)
        {
            // Perform custom initialization.
            customCreatedMsg =
              string.Format("Event created at: {0}", 
              DateTime.Now.TimeOfDay.ToString());
        }

        // Invoked in case of events identified by their event code.and 
        // event detailed code.
        public SampleWebAuditEvent(string msg, object eventSource, 
            int eventCode, int detailedCode): 
            base(msg, eventSource, eventCode, detailedCode)
        {
            // Perform custom initialization.
            customCreatedMsg =
              string.Format("Event created at: {0}", 
              DateTime.Now.TimeOfDay.ToString());
        }

        // Raises the SampleWebAuditEvent.
        public override void Raise()
        {
            // Perform custom processing.
            customRaisedMsg =
              string.Format("Event raised at: {0}", 
              DateTime.Now.TimeOfDay.ToString());

            // Raise the event.
            WebBaseEvent.Raise(this);
        }

        // Obtains the current thread information.
        public WebRequestInformation GetRequestInformation()
        {
            // Obtain the Web request information.
            // No customization is allowed here.
            return RequestInformation;
        }

        //Formats Web request event information.
        //This method is invoked indirectly by the provider 
        // using one of the overloaded ToString() methods.
        public override void FormatCustomEventDetails(
            WebEventFormatter formatter)
        {
            base.FormatCustomEventDetails(formatter);

            // Add custom data.
            formatter.AppendLine("");

            formatter.IndentationLevel += 1;
            formatter.AppendLine(
                "******** SampleWebAuditEvent Information Start ********");
            formatter.AppendLine(string.Format("Request path: {0}",
              RequestInformation.RequestPath));
            formatter.AppendLine(string.Format("Request Url: {0}",
              RequestInformation.RequestUrl));

            // Display custom event timing.
            formatter.AppendLine(customCreatedMsg);
            formatter.AppendLine(customRaisedMsg);

            formatter.AppendLine(
                "******** SampleWebAuditEvent Information End ********");

            formatter.IndentationLevel -= 1;
        }
    }
}
Imports System.Text
Imports System.Web
Imports System.Web.Management


' Implements a custom WebAuditEvent class. 

Public Class SampleWebAuditEvent
    Inherits System.Web.Management.WebAuditEvent
    Private customCreatedMsg, customRaisedMsg As String
    
    
    ' Invoked in case of events identified only by their event code.
    Public Sub New(ByVal msg As String, ByVal eventSource As Object, _
    ByVal eventCode As Integer)
        MyBase.New(msg, eventSource, eventCode)
        ' Perform custom initialization.
        customCreatedMsg = String.Format("Event created at: {0}", DateTime.Now.TimeOfDay.ToString())

    End Sub
    
    
    ' Invoked in case of events identified by their event code.and 
    ' event detailed code.
    Public Sub New(ByVal msg As String, ByVal eventSource As Object, _
    ByVal eventCode As Integer, ByVal detailedCode As Integer)
        MyBase.New(msg, eventSource, eventCode, detailedCode)
        ' Perform custom initialization.
        customCreatedMsg = String.Format("Event created at: {0}", _
        DateTime.Now.TimeOfDay.ToString())

    End Sub
    
    ' Raises the SampleWebAuditEvent.
    Public Overrides Sub Raise() 
        ' Perform custom processing.
        customRaisedMsg = String.Format("Event raised at: {0}", _
        DateTime.Now.TimeOfDay.ToString())
        
        ' Raise the event.
        WebBaseEvent.Raise(Me)
    
    End Sub
    
    
    ' Obtains the current thread information.
    Public Function GetRequestInformation() As WebRequestInformation 
        ' Obtain the Web request information.
        ' No customization is allowed here.
        Return RequestInformation
    
    End Function 'GetRequestInformation
    
    
    'Formats Web request event information.
    'This method is invoked indirectly by the provider 
    ' using one of the overloaded ToString() methods.
    Public Overrides Sub FormatCustomEventDetails(ByVal formatter As WebEventFormatter) 
        MyBase.FormatCustomEventDetails(formatter)
        
        ' Add custom data.
        formatter.AppendLine("")
        
        formatter.IndentationLevel += 1
        formatter.AppendLine("******** SampleWebAuditEvent Information Start ********")
        formatter.AppendLine(String.Format("Request path: {0}", RequestInformation.RequestPath))
        formatter.AppendLine(String.Format("Request Url: {0}", RequestInformation.RequestUrl))
        
        ' Display custom event timing.
        formatter.AppendLine(customCreatedMsg)
        formatter.AppendLine(customRaisedMsg)
        
        formatter.AppendLine("******** SampleWebAuditEvent Information End ********")
        
        formatter.IndentationLevel -= 1
    
    End Sub
End Class

Ниже приведен фрагмент файла конфигурации, который позволяет ASP.NET использовать событие .

<healthMonitoring   
  enabled="true"  
  heartBeatInterval="0">   

  <providers>  
    <add name="EventLogProvider"   
      type="System.Web.Management.EventLogWebEventProvider,  
      System.Web,Version=2.0.3600.0,Culture=neutral,  
      PublicKeyToken=b03f5f7f11d50a3a"/>  
  </providers>  

  <eventMappings>  
    <add  name="SampleWebAuditEvent"   
      type="SamplesAspNet.SampleWebAuditEvent,  
      webauditevent,Version=1.0.1663.31140,   
      Culture=neutral,   
      PublicKeyToken=0d1fa0f69d94de96,   
      processorArchitecture=MSIL"/>  
  </eventMappings>  

  <rules>  
    <add name="Custom Audit Default"  
      eventName="SampleWebAuditEvent"  
      provider="EventLogProvider"  
      profile="Default"/>    
  </rules>  

</healthMonitoring>  

Комментарии

ASP.NET мониторинг работоспособности позволяет рабочим и операционным сотрудникам управлять развернутыми веб-приложениями. Пространство System.Web.Management имен содержит типы событий работоспособности, отвечающие за упаковку данных о состоянии работоспособности приложения, и типы поставщиков, ответственные за обработку этих данных. Он также содержит вспомогательные типы, помогающие при управлении событиями работоспособности.

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

Система мониторинга работоспособности может выполнять аудит как успешных, так и неудачных событий, что означает, что приложение может отслеживаться на наличие нормальных и неисправных условий. По умолчанию записываются только события аудита сбоев.

Следующие операции проверяются ASP.NET и могут привести к возникновению событий аудита мониторинга работоспособности:

  • Попытки входа, выполненные пользователями приложения ASP.NET. Дополнительные сведения об этом аудите см. в разделе WebAuthenticationSuccessAuditEvent и WebSuccessAuditEvent.

  • События, связанные с безопасностью, такие как сбои проверки подлинности, неудачные попытки доступа к ресурсам и другие события, связанные с безопасностью. Журнал этих событий может быть полезен при расследовании вторжения или атаки на приложение. По умолчанию не предоставляется поддержка аудита для сбоев авторизации анонимных пользователей. Дополнительные сведения об аудите событий сбоя см. в разделах WebAuthenticationFailureAuditEvent и WebFailureAuditEvent.

  • Пользовательские события, создаваемые приложением ASP.NET. Вы можете выполнять аудит пользовательских событий, расширяя функциональные возможности, предоставляемые классом WebAuditEvent и производными классами.

Примечание

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

Примечания для тех, кто наследует этот метод

При форматировании пользовательских сведений о событиях для отображения переопределите FormatCustomEventDetails(WebEventFormatter) метод, а не ToString метод . Это позволит избежать перезаписи или незаконного изменения конфиденциальной системной информации.

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

WebAuditEvent(String, Object, Int32)

Инициализирует новый экземпляр класса WebAuditEvent с использованием предоставленных параметров.

WebAuditEvent(String, Object, Int32, Int32)

Инициализация нового экземпляра класса WebAuditEvent с указанными параметрами события.

Свойства

EventCode

Получает значение кода, связанное с событием.

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

Получает подробный код события.

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

Получает идентификатор, связанный с событием.

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

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

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

Получает количество порождений события приложением.

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

Получает объект, порождающий событие.

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

Получает время порождения события.

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

Получает время порождения события.

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

Получает сообщение, описывающее событие.

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

Получает сведения о размещающем приложение процессе ASP.NET.

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

Получает сведения, связанные с веб-запросом.

Методы

Equals(Object)

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

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

Обеспечивает стандартное форматирование сведений о событии.

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

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

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

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

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

Используется для внутренних целей для увеличения значений счетчиков производительности.

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

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

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

Порождает событие, уведомляя любого настроенного поставщика о произошедшем событии.

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

Форматирует сведения события для последующего отображения.

(Унаследовано от WebBaseEvent)
ToString(Boolean, Boolean)

Форматирует сведения события для последующего отображения.

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

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

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